我有一个示例数据框,我想根据相同的值过滤几列,但我想避免重复行来执行此操作:df = df.loc[df['a'] == 7]df = df.loc[df['b'] == 7]我正在寻找一种更简洁的方式来编写此内容,因为我将有许多具有相同处理方式的列。这是我的尝试:df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 7, 9]]), columns=['a', 'b', 'c']) my_cols = ['a','b']print(df.loc[df[my_cols]==7])但我收到以下错误:无法使用多维键进行索引有谁知道是否可以制作这种类型的过滤器?
1 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
因为df[my_cols]==7return booleanDataFrame是必要的,所以添加DataFrame.any:
print(df[(df[my_cols]==7).any(axis=1)])
a b c
2 7 7 9
print (df[my_cols]==7)
a b
0 False False
1 False False
2 True True
添加回答
举报
0/150
提交
取消