我想查找特定时间下值为0的ID的数量。 我的df看起来像这样:
datetime id value other_info
05/01/12:00 001 1 n/a
05/01/12:00 001 0 n/a
05/01/12:30 001 1 n/a
05/01/12:00 002 0 n/a
05/01/12:30 002 0 n/a
我的预期输出为:
datetime id zero_count
05/01/12:00 001 1
05/01/12:00 002 1
05/01/12:30 002 1
我认为先按时间再按id分组,然后在value等于0的情况下进行计数是可行的,但这使我在整个数据帧中的数字为0,而不是与日期时间和id对应的0。 / p>
我刚接触熊猫,所以我不知道是否有内置的东西可以帮助我。我非常感谢朝着正确方向前进。
答案 0 :(得分:3)
您可以先过滤数据,然后再分组:
(df[df['value']==0].groupby(['datetime','id']).size()
.reset_index(name='zero_count')
)
输出:
datetime id zero_count
0 05/01/12:00 1 1
1 05/01/12:00 2 1
2 05/01/12:30 2 1
答案 1 :(得分:0)
你可以做
s=df.value.eq(0).astype(int).groupby([df.datetime,df.id]).sum().reset_index()
datetime id value
0 05/01/12:00 1 1
1 05/01/12:00 2 1
2 05/01/12:30 1 0
3 05/01/12:30 2 1