簡體   English   中英

過濾數據由str.contains

[英]filter data by str.contains

我正在嘗試按可能包含以下字符串'io'和'ir'的列過濾我的大數據。

DF1

index  aio   bir   ckk
1      2     3     4
2      3     4     5

我想用包含'io'和'ir的列創建一個新的df。 新的df應該看起來:

index  aio   bir  
1      2     3    
2      3     4     

我試過了

df = df[:, str.contains('io','ir')] 

但我得到一個錯誤說類型對象'str'沒有屬性'包含'

使用pd.DataFrame.filter

df.filter(regex='i(o|r)')

       aio  bir
index          
1        2    3
2        3    4

如果你有一個匹配的東西列表

things = ['io', 'ir']
df.filter(regex='|'.join(things))

       aio  bir
index          
1        2    3
2        3    4

備擇方案

df.filter(regex='io|ir')

df.loc[:, df.columns.str.contains('io|ir')]

既然提到了str.contains

df.loc[:,df.columns.str.contains('io|ir')]
Out[354]: 
       aio  bir
index          
1        2    3
2        3    4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM