假设我有一个pandasdataframedf,则可以如下所示使用.loc()

c1 = df['count'] > 10
c2 = df['min'] > 3
c2 = df['max']> 4

filtered = df.loc[c1 & c2 & c3].T.reset_index()

不说条件存储在列表中:

conditions = [df['count'] > 10, df['min'] > 3, df['max']> 4]

如何将此列表传递给.loc()并指示所有条件都必须包含(&)?

分析解答

您可以使用functools reduce:

l = [c1,c2,c3]
from functools import reduce
df.loc[reduce(np.logical_and, l)]

@ GZ0改进...

df.loc[np.logical_and.reduce(l)]