【发布时间】:2019-08-01 13:02:43
【问题描述】:
我需要在某些列的某些条件下过滤行。 这些列存在于列表中。所有列的条件都相同,也可以不同。对于我的工作,条件是一样的。
不工作
labels = ['one', 'two', 'three']
df = df [df [x] == 1 for x in labels]
以下代码有效:
df_list = []
for x in labels:
df_list.append(df[(df [x] == 1)])
df5 = pd.concat(df_list).drop_duplicates()
创建不同的数据框并通过避免重复来连接它们。
预期: 它应该过滤掉那些列的值为 1 的行。
实际: ValueError:要解包的值太多(应为 1)
我了解错误的原因。有什么方法可以通过修改 not working code 来构造条件?
【问题讨论】: