我有一个数据框
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: []
我可以遍历所有列并获得像数据框一样的视图吗?
答案 0 :(得分:4)
您可以使用df.eq
来检查df中的任何值是否等于1,并在axis=1
上使用df.any
,这将对所有列值中的任何行返回True拥有1.最终使用boolean indexing
output = df[df.eq(1).any(axis=1)]