Pandas:选择具有多个列条件的行

Sci*_*tas 0 python dataframe pandas

我正在使用它有条件地选择行column:

X.loc[data['column'] == 1]

但我想将这个条件扩展到几个列.这些列有一些共同点:它们包含相同的字符串.所以实际上我有一个column1,一个column2,...... column100等等,这个条件应该适用于所有这些列.实际上是这样的(通配符):

X.loc[data['column*'] == 1]

这些条件应该与之相关联OR.有机会轻松做到这一点吗?

Chu*_*uck 5

对于某些数据帧 X

   p A  p B  p C
0    0    0    0
1    0    0    0
2    0    0    1
3    0    0    0
4    0    0    0
5    0    0    0
6    1    0    0
Run Code Online (Sandbox Code Playgroud)

如果您可以设置要测试的列的名称 col_list

col_list = X.columns
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用np.any()每个测试:

X.loc[(X[col_list] == 1).any(axis=1)]
Run Code Online (Sandbox Code Playgroud)

哪个给你:

   p A  p B  p C
2    0    0    1
6    1    0    0
Run Code Online (Sandbox Code Playgroud)

知情你不需要loc也会得到相同的答案,归功于@MaartynFabre的信息

X[(X[col_list] == 1).any(axis=1)]

   p A  p B  p C
2    0    0    1
6    1    0    0
Run Code Online (Sandbox Code Playgroud)