1
我有一些SQL数据,我正在分组和执行某些聚合。它工作得很好:在群组之后填写缺失的行由
grouped = df.groupby(['a', 'b'])
agged = grouped.aggregate({
c: [numpy.sum, numpy.mean, numpy.size],
d: [numpy.sum, numpy.mean, numpy.size]
})
和
c d
sum mean size sum mean size
a b
25 20 107.0 0.804511 133.0 5328000 40060.150376 133
21 110.0 0.774648 142.0 6031000 42471.830986 142
23 126.0 0.792453 159.0 8795000 55314.465409 159
24 72.0 0.947368 76.0 2920000 38421.052632 76
25 54.0 0.818182 66.0 2570000 38939.393939 66
26 23 126.0 0.792453 159.0 8795000 55314.465409 159
但我想,以填补所有处于a=25
行而不是在a=26
零。换句话说,就像这样:
c d
sum mean size sum mean size
a b
25 20 107.0 0.804511 133.0 5328000 40060.150376 133
21 110.0 0.774648 142.0 6031000 42471.830986 142
23 126.0 0.792453 159.0 8795000 55314.465409 159
24 72.0 0.947368 76.0 2920000 38421.052632 76
25 54.0 0.818182 66.0 2570000 38939.393939 66
26 20 0 0 0 0 0 0
21 0 0 0 0 0 0
23 126.0 0.792453 159.0 8795000 55314.465409 159
24 0 0 0 0 0 0
25 0 0 0 0 0 0
我该怎么做?
您的输出不匹配你要求。 'a == 25'将是整个第一块。为什么你要在'a == 6'组中清零行? – piRSquared
我可能没有解释得很清楚。我基本上想要在分组完成后用0填写任何缺失的“行”,这样在别处使用时数据可以更“完整”。 –
[Pandas分类子组0的计数]的可能重复(http:// stackoverflow.com/questions/43097140/pandas-category-sub-group-0-counts) – gereleth