如何将Series转换为DataFrame保留列?

时间:2016-06-03 13:15:46

标签: python pandas dataframe

我有一个大的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
...

我想知道我有多少obj0type对,我这样做: obj0_sums = pdf.groupby(['obj0', 'type'])['counts'].sum()

obj0   type
car    P     5
tree   P     15
box    I     50
...

然后我需要稍后在obj0_sums上执行其他操作,但是Series obj0type列已转为第一行。如何使其保持DataFrame并在groupby操作后保留列?

2 个答案:

答案 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()