我有一个大的DataFrame
,内容如下:
obj0 type obj1 counts
car P wheel 2
tree P branch 5
box I ball 23
wheel P bus 3
grass A cow 10
...
我想知道我有多少obj0
和type
对,我这样做:
obj0_sums = pdf.groupby(['obj0', 'type'])['counts'].sum()
。
obj0 type
car P 5
tree P 15
box I 50
...
然后我需要稍后在obj0_sums
上执行其他操作,但是Series
obj0
和type
列已转为第一行。如何使其保持DataFrame
并在groupby
操作后保留列?
答案 0 :(得分:3)
试试这个:
In [262]: df.groupby(['obj0', 'type'], as_index=False)['counts'].sum()
Out[262]:
obj0 type counts
0 box I 23
1 car P 2
2 grass A 10
3 tree P 5
4 wheel P 3
来自docs:
as_index:布尔值,默认为True
对于聚合输出,返回以组标签作为索引的对象。只要 与DataFrame输入相关。 as_index = False实际上是“SQL风格”分组输出
答案 1 :(得分:1)
我想你可能在寻找
pdf.groupby(['obj0', 'type'], as_index=False)['counts'].sum()