Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)
更新時間:2024年02月22日 09:07:35 作者:永遠在減肥永遠110的的小潘
這篇文章主要介紹了Python pandas如何根據(jù)指定條件篩選數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
pandas根據(jù)指定條件篩選數(shù)據(jù)
import pandas as pd import numpy as np df=pd.DataFrame(np.arange(16).reshape(4,4),columns=["sh","bj","sz","gz"],index=["one","two","three","four"])
1、篩選出"sh"列大于5的數(shù)據(jù)
法一:直接篩選
適用于一些比較簡單直接的篩選,這種方式方便快捷。
df[df["sh"]>5]
法二:函數(shù)篩選
適用于比較復雜的條件篩選,函數(shù)除了可以使用lambda匿名函數(shù)以外,也可以使用其他邏輯更復雜的自定義函數(shù)。
df[df["sh"].map(lambda x:x>5)]
2、篩選出"sh"列為2或7的數(shù)據(jù)
法一:同上
df[df["sh"]==5]
法二:同上
df[df["sh"].map(lambda x:x==5)]
法三:使用isin()函數(shù),支持多值篩選
df[df["sh"].isin([5])]
3、模糊篩選
1)str.contains()函數(shù)
province = pd.DataFrame(['廣東', '廣西', '福建', '福建省'], columns=['省份']) province.loc[province["省份"].str.contains("福")]#篩選出福建省數(shù)據(jù)
2)正則匹配
import re province = pd.DataFrame(['廣東', '廣西', '福建', '福建省'], columns=['省份']) #自定義函數(shù),如果包含“廣”字,則返回True,否則返回False def func(x): if re.search(".*廣.*",x): return(True) else: return(False) province[province["省份"].apply(func)]
3)切片
df=pd.DataFrame({"date":["2020efgdh0228","2021hijik0228","2019hokh0201"],"value":[9999,777,4]})
#篩選出2019年的數(shù)據(jù) df[df["date"].map(lambda x:x[0:4])=="2019"]
4、篩選重復值
df[df.duplicated(subset=["one"],keep="last")]#返回除最后一次出現(xiàn)的重復值
df[df.duplicated(subset=["one"],keep=False)]#返回所有重復值
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
一文教會你用Python獲取網(wǎng)頁指定內(nèi)容
Python用做數(shù)據(jù)處理還是相當不錯的,如果你想要做爬蟲,Python是很好的選擇,它有很多已經(jīng)寫好的類包,只要調(diào)用即可完成很多復雜的功能,下面這篇文章主要給大家介紹了關于Python獲取網(wǎng)頁指定內(nèi)容的相關資料,需要的朋友可以參考下2022-03-03python機器學習實現(xiàn)神經(jīng)網(wǎng)絡示例解析
這篇文章主要為大家介紹了python機器學習python實現(xiàn)神經(jīng)網(wǎng)絡的示例解析,在同樣在進行python機器學習的同學可以借鑒參考下,希望能夠有所幫助2021-10-10