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/

10-11 00:16