校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > pandas is in和not in的使用說明

pandas is in和not in的使用說明

熱門標簽:400電話申請資格 電銷機器人系統廠家鄭州 螳螂科技外呼系統怎么用 地圖地圖標注有嘆號 舉辦過冬奧會的城市地圖標注 遼寧智能外呼系統需要多少錢 正安縣地圖標注app qt百度地圖標注 阿里電話機器人對話

簡介

pandas按條件篩選數據時,除了使用query()方法,還可以使用isin和對isin取反進行條件篩選.

代碼

 import pandas as pd
 df = pd.DataFrame({'a':[1, 2, 3, 4, 5, 6],
   'b':[1, 2, 3, 4, 5, 6],
   'c':[1, 2, 3, 4, 5, 6]})
 
 filter_condition = {'a':[1, 2, 3]}
 
 df_in = df[df.isin(filter_condition)['a']]
 df_notin = df[~df.isin(filter_condition)['a']]
df.isin(filter_condition)
 a b c
0 True True False
1 True True False
2 True False False
3 False False False
4 False False False
5 False False False

使用總結

pandas使用isin時,返回DataFrame中存儲的數據為是否滿足篩選條件的boolean,可以通過boolean對DataFrame對數據進行篩選。

補充:pandas中isin()函數及其逆函數使用

我使用這個函數就是用來清洗數據,刪選過濾掉DataFrame中一些行。

布爾索引

這里你需要知道DateFrame中布爾索引這個東西,可以用滿足布爾條件的列值來過濾數據,如下

>>> df=pd.DataFrame(np.random.randn(4,4),columns=['A','B','C','D'])
>>> df
   A   B   C   D
0 -0.018330 2.093506 -0.086293 -2.150479
1 0.104931 -0.271810 -0.054599 0.361612
2 0.590216 0.218049 0.157213 0.643540
3 -0.254449 -0.593278 -0.150455 -0.244485
>>> df.A>0#布爾索引
0 False
1  True
2  True
3 False
Name: A, dtype: bool
#布爾索引應用
>>> df[df.A>0]
   A   B   C   D
1 0.104931 -0.271810 -0.054599 0.361612
2 0.590216 0.218049 0.157213 0.643540
>>>

isin()

添加一列E

>>> df['E']=['a','a','c','b']
>>> df
   A   B   C   D E
0 -0.018330 2.093506 -0.086293 -2.150479 a
1 0.104931 -0.271810 -0.054599 0.361612 a
2 0.590216 0.218049 0.157213 0.643540 c
3 -0.254449 -0.593278 -0.150455 -0.244485 b
>>> df.E.isin(['a','c'])
0  True
1  True
2  True
3 False
Name: E, dtype: bool
>>> df.isin(['b','c'])#整個df也同樣適用
  A  B  C  D  E
0 False False False False False
1 False False False False False
2 False False False False True
3 False False False False True
#應用
>>> df[df.E.isin(['a','c'])]
   A   B   C   D E
0 -0.018330 2.093506 -0.086293 -2.150479 a
1 0.104931 -0.271810 -0.054599 0.361612 a
2 0.590216 0.218049 0.157213 0.643540 c
>>>

isin()接受一個列表,判斷該列中元素是否在列表中。

同時對多個列過濾,可以如下使用

df[df[某列].isin(條件)df[某列].isin(條件)]
#應用
>>> df.D=[0,1,0,2]
>>> df[df.E.isin(['a','d'])df.D.isin([0,])]
   A   B   C D E
0 -0.01833 2.093506 -0.086293 0 a

也可以

不推薦,你試一下就知道

df.isin({
'某列':[條件],
'某列':[條件],
})
#應用
>>> df.D=[0,1,0,2]
>>> df
   A   B   C D E
0 -0.018330 2.093506 -0.086293 0 a
1 0.104931 -0.271810 -0.054599 1 a
2 0.590216 0.218049 0.157213 0 c
3 -0.254449 -0.593278 -0.150455 2 b
>>> df[df.isin({'D':[0,3],'E':['a','d']})]
 A B C D E
0 NaN NaN NaN 0.0 a
1 NaN NaN NaN NaN a
2 NaN NaN NaN 0.0 NaN
3 NaN NaN NaN NaN NaN
#沒錯這不適合選出一行
>>> df.isin({'D':[0,3],'E':['a','d']})
  A  B  C  D  E
0 False False False True True
1 False False False False True
2 False False False True False
3 False False False False False

isin()的逆函數

告訴你沒有isnotin,它的反函數就是在前面加上 ~ ,其他用法同上。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Pandas探索之高性能函數eval和query解析
  • pandas數據分組groupby()和統計函數agg()的使用
  • 使用pandas讀取表格數據并進行單行數據拼接的詳細教程
  • pandas 查詢函數query的用法說明

標簽:信陽 興安盟 昭通 濟源 淘寶好評回訪 隨州 阜新 合肥

巨人網絡通訊聲明:本文標題《pandas is in和not in的使用說明》,本文關鍵詞  pandas,和,not,的,使用說明,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pandas is in和not in的使用說明》相關的同類信息!
  • 本頁收集關于pandas is in和not in的使用說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 定日县| 尼玛县| 文成县| 揭阳市| 三亚市| 灵武市| 盐城市| 柘城县| 正镶白旗| 岑巩县| 琼结县| 汉源县| 六盘水市| 石景山区| 南昌市| 奇台县| 吴堡县| 乌审旗| 房产| 江华| 瑞安市| 商洛市| 宁晋县| 茂名市| 盐津县| 陵水| 莒南县| 西乌| 衡水市| 错那县| 察隅县| 广州市| 勐海县| 遂溪县| 韶山市| 四会市| 个旧市| 井陉县| 仁布县| 胶州市| 雅江县|