Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列
一、基礎(chǔ)知識(shí)回顧
在開(kāi)始之前,讓我們先回顧一下Pandas DataFrame的基礎(chǔ)知識(shí)。DataFrame是Pandas中的一個(gè)核心數(shù)據(jù)結(jié)構(gòu),它可以看作是一個(gè)表格,擁有行和列,可以存儲(chǔ)不同類(lèi)型的數(shù)據(jù)。示例如下:
import pandas as pd
# 創(chuàng)建一個(gè)簡(jiǎn)單的DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)
輸出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
3 David 40 Houston
二、篩選含有特定值的行
在Pandas中,我們可以使用布爾索引來(lái)篩選含有特定值的行。布爾索引就是根據(jù)每個(gè)元素是否滿足某個(gè)條件(返回True或False)來(lái)篩選數(shù)據(jù)。
# 篩選年齡大于30的行 df_filtered = df[df['Age'] > 30] print(df_filtered)
上面的代碼會(huì)篩選出年齡大于30的行,并返回一個(gè)新的DataFrame:
Name Age City
2 Charlie 35 Chicago
3 David 40 Houston
三、刪除含有特定值的行
如果我們想從原始DataFrame中刪除滿足某個(gè)條件的行,可以使用drop方法。
# 刪除年齡大于30的行
df_dropped = df.drop(df[df['Age'] > 30].index)
print(df[df['Age'] > 30].index)
print("*"*30)
print(df_dropped)
上面的代碼會(huì)刪除年齡大于30的行,并返回一個(gè)新的DataFrame:
Index([2, 3], dtype='int64')
******************************
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
四、篩選含有特定值的列
同樣地,我們也可以篩選含有特定值的列。
# 篩選城市為"Chicago"的列
df_filtered_columns = df[df['City'] == 'Chicago']
print(df['City'] == 'Chicago')
print("*"*30)
print(df_filtered_columns)
上面的代碼會(huì)篩選出城市為"Chicago"的列,并返回一個(gè)新的DataFrame:
0 False
1 False
2 True
3 False
Name: City, dtype: bool
******************************
Name Age City
2 Charlie 35 Chicago
五、刪除含有特定值的列
要?jiǎng)h除含有特定值的列,我們可以使用drop方法,并指定columns參數(shù)。
# 刪除城市為"Chicago"的列 df_dropped_columns = df.drop(columns=['City']) print(df_dropped_columns)
上面的代碼會(huì)刪除城市列,并返回一個(gè)新的DataFrame:
Name Age
0 Alice 25
1 Bob 30
2 Charlie 35
3 David 40
注意:篩選和刪除操作默認(rèn)返回的是一個(gè)新的DataFrame,不會(huì)改變?cè)嫉腄ataFrame。
六、實(shí)戰(zhàn)演練
假設(shè)我們有一個(gè)包含學(xué)生信息的DataFrame,我們要篩選出年齡大于15且城市為"New York"的學(xué)生。
import pandas as pd
# 創(chuàng)建一個(gè)包含學(xué)生信息的DataFrame
student_data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
'Age': [22, 25, 18, 28, 21, 27],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'New York', 'San Francisco']
}
student_df = pd.DataFrame(student_data)
print("原始DataFrame:")
print(student_df)
# 篩選年齡大于1且5城市為"New York"的學(xué)生
filtered_students = student_df[(student_df['Age'] > 15) & (student_df['City'] == 'New York')]
print("\n篩選后的DataFrame:")
print(filtered_students)
上面的代碼會(huì)篩選出年齡大于15且城市為"New York"的學(xué)生,并打印出篩選后的DataFrame:
原始DataFrame:
Name Age City
0 Alice 22 New York
1 Bob 25 Los Angeles
2 Charlie 18 Chicago
3 David 28 Houston
4 Eve 21 New York
5 Frank 27 San Francisco篩選后的DataFrame:
Name Age City
0 Alice 22 New York
4 Eve 21 New York
七、最后
到此這篇關(guān)于Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列的文章就介紹到這了,更多相關(guān)DataFrame篩選和刪除特定值行與列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Anaconda下安裝mysql-python的包實(shí)例
今天小編就為大家分享一篇Anaconda下安裝mysql-python的包實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python json.loads兼容單引號(hào)數(shù)據(jù)的方法
今天小編就為大家分享一篇python json.loads兼容單引號(hào)數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
python腳本請(qǐng)求數(shù)量達(dá)到上限,http請(qǐng)求重試問(wèn)題
這篇文章主要介紹了python腳本請(qǐng)求數(shù)量達(dá)到上限,http請(qǐng)求重試問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
pandas中quantile()函數(shù)的應(yīng)用及說(shuō)明
本文介紹了pandas中quantile()函數(shù)用于計(jì)算DataFrame或Series中數(shù)值型數(shù)據(jù)的分位數(shù),通過(guò)示例展示了如何計(jì)算整個(gè)DataFrame、每列和每行的分位數(shù),并可指定百分位數(shù)和axis參數(shù)進(jìn)行計(jì)算2026-05-05
在pytorch中動(dòng)態(tài)調(diào)整優(yōu)化器的學(xué)習(xí)率方式
這篇文章主要介紹了在pytorch中動(dòng)態(tài)調(diào)整優(yōu)化器的學(xué)習(xí)率方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06

