熊猫按条件为所有数据框列选择行

时间:2020-03-07 14:11:45

标签: python pandas

我有一个数据框

d = {'col1': [1, 2], 'col2': [3, 4], 'col3' : [5,6]}
df = pd.DataFrame(data=d)
df
    col1    col2    col3
0      1       3       5
1      2       4       6

例如,我需要选择值= 1的所有行,因此我的代码是:

df[df['col1']==1]
  col1  col2    col3
0    1     3       5

但是我不仅可以选择'col1'而且可以选择所有列,我已经尝试了以下代码:

for col in df.columns:
    print(df[df[col]==1])

但是在熊猫数据框的视图中没有输出:

   col1  col2  col3
 0    1     3     5
        Empty DataFrame
        Columns: [col1, col2, col3]
        Index: []
        Empty DataFrame
        Columns: [col1, col2, col3]
        Index: []

我可以遍历所有列并获得像数据框一样的视图吗?

1 个答案:

答案 0 :(得分:4)

您可以使用df.eq来检查df中的任何值是否等于1,并在axis=1上使用df.any,这将对所有列值中的任何行返回True拥有1.最终使用boolean indexing

output = df[df.eq(1).any(axis=1)]