在pandas.DataFrame.filter中,有一种使用参数“like”或“regex”的方法,因此它们支持OR条件。例如:
df.filter(like='bbi', axis=1)
会过滤名称中带有
bbi
的列,但如何过滤包含'bbi'
或'abc'
的列?一些失败的选择:
df.filter(like='bbi' or 'abc', axis=1)
df.filter(like=('bbi' or 'abc'), axis=1)
最佳答案
我将执行以下操作:
建立:
df=pd.DataFrame(np.random.randint(0,20,20).reshape(5,4),
columns=['abcd','bcde','efgh','bbia'])
print(df)
abcd bcde efgh bbia
0 10 17 2 7
1 7 12 18 9
2 17 7 11 17
3 14 4 2 9
4 15 10 12 11
解:
使用
df.filter
:df.filter(regex=r'(abc|bbi)')
abcd bbia
0 10 7
1 7 9
2 17 17
3 14 9
4 15 11
关于pandas - 在多个条件下过滤数据框索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58752330/