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

ScientiaEtVeritas

我正在使用它来有条件地选择以下行column

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

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

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

这些条件应与OR. 有机会轻松做到这一点吗?

马丁·法布尔

测试数据框

    col0 col1 col2
0   1    1    2
1   1    1    1
2   2    2    2

使用所有列的测试创建一个新的数据框

result_s = d.concat((df['col%i'%i] == 1 for i in range(3)), axis=1).all(axis=1)

结果是

0    False
1     True
2    False
dtype: bool

如果df[result_s]你得到

    col0 col1 col2
1   1    1    1

这将选择所有列所在的行==1如果其中之一就足够了,请将.all()更改.any

    col0 col1 col2
0   1    1    2
1   1    1    1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章