Sci*_*tas 0 python dataframe pandas
我正在使用它有条件地选择行column:
X.loc[data['column'] == 1]
但我想将这个条件扩展到几个列.这些列有一些共同点:它们包含相同的字符串.所以实际上我有一个column1,一个column2,...... column100等等,这个条件应该适用于所有这些列.实际上是这样的(通配符):
X.loc[data['column*'] == 1]
这些条件应该与之相关联OR.有机会轻松做到这一点吗?
对于某些数据帧 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)