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ù)
法一:直接篩選
適用于一些比較簡(jiǎn)單直接的篩選,這種方式方便快捷。
df[df["sh"]>5]
法二:函數(shù)篩選
適用于比較復(fù)雜的條件篩選,函數(shù)除了可以使用lambda匿名函數(shù)以外,也可以使用其他邏輯更復(fù)雜的自定義函數(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、篩選重復(fù)值
df[df.duplicated(subset=["one"],keep="last")]#返回除最后一次出現(xiàn)的重復(fù)值
df[df.duplicated(subset=["one"],keep=False)]#返回所有重復(fù)值
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一文教會(huì)你用Python獲取網(wǎng)頁(yè)指定內(nèi)容
Python用做數(shù)據(jù)處理還是相當(dāng)不錯(cuò)的,如果你想要做爬蟲,Python是很好的選擇,它有很多已經(jīng)寫好的類包,只要調(diào)用即可完成很多復(fù)雜的功能,下面這篇文章主要給大家介紹了關(guān)于Python獲取網(wǎng)頁(yè)指定內(nèi)容的相關(guān)資料,需要的朋友可以參考下2022-03-03Tensorflow實(shí)現(xiàn)酸奶銷量預(yù)測(cè)分析
這篇文章主要為大家詳細(xì)介紹了Tensorflow酸奶銷量預(yù)測(cè)分析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07python機(jī)器學(xué)習(xí)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)示例解析
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)python實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的示例解析,在同樣在進(jìn)行python機(jī)器學(xué)習(xí)的同學(xué)可以借鑒參考下,希望能夠有所幫助2021-10-10Python正則獲取、過濾或者替換HTML標(biāo)簽的方法
這篇文章主要介紹了Python通過正則表達(dá)式獲取、過濾或者替換HTML標(biāo)簽的方法,感興趣的小伙伴們可以參考一下2016-01-01