我正在寻找一种方法来运行两个条件pandas DataFrame groupby方法。我有很多日志要解析,我有以下单个条件groupby方法,但有没有办法有两个条件groupby方法?
DF[DF['Feature Enabled'] == 1].groupby([’Feature Active'])[['Value1','Value2']].mean()
当我浏览每个文件时,是否有办法为当前日志打印正在运行的groupby,如...
DF[DF['Iteration'] == CURRENTLOG_ID and DF['Feature Enabled'] == 1].groupby([’Feature Active'])[['Value1','Value2']].mean()
这样可以帮助我在每个日志之后绘制到Excel中,然后处理日志目录。
由于
答案 0 :(得分:2)
要使用多个条件,您需要使用逐位&
而不是and
,还需要根据运算符优先级将条件括在括号中:
DF[(DF['Iteration'] == CURRENTLOG_ID) & (DF['Feature Enabled'] == 1)].groupby([’Feature Active'])[['Value1','Value2']].mean()
应该有效
答案 1 :(得分:1)
尝试使用masks。
mask_A = DF['Feature Enabled'] == 1
mask_B = DF['Iteration'] == CURRENTLOG_ID
subset = DF[mask_A & mask_B].groupby(...).mean()