【发布时间】:2017-05-22 06:04:45
【问题描述】:
我有数据框:
df = pd.DataFrame({'ID':[1,1,2,2,3,3],
'YEAR' : [2011,2012,2012,2013,2013,2014],
'V': [0,1,1,0,1,0],
'C':[00,11,22,33,44,55]})
我想按 ID 分组,并在每个组中选择 V = 0 的行。
这似乎不起作用:
print(df.groupby(['ID']).filter(lambda x: x['V'] == 0))
出现错误:
TypeError:过滤器函数返回一个系列,但期望一个标量布尔
如何使用过滤器来实现目标?谢谢。
编辑: V 上的条件可能因每个组而异,例如,对于 ID 1,它可能是 V==0,对于 ID 2,它可能是 V==1,并且可以通过另一个 DF 获得此信息:
df = pd.DataFrame({'ID':[1,2,3],
'V': [0,1,0])
那么如何在每个组内进行行过滤呢?
【问题讨论】:
标签: python pandas indexing group-by conditional-statements