我希望能够减少一行代码,使其可以处理动态列表长度
signals = ['a', 'b', 'c']
num = df[(df[signals[x]] == True for x in len(signals))].shape[0]
num = df[(df['a'] == True) & (df['b'] == True) & (df['c'] == True)].shape[0]
num的第二个定义有效,但是我希望能够以与第一个定义类似的方式实现它。这是因为我的信号列表的长度不同,因此条件的数量发生了变化,无法对其进行硬编码。
答案 0 :(得分:3)
看起来您正在寻找全部正确的行
df[df.all(1)]
或
df[df[signals].all(1)]