45

我有一个数据框,并在 FIPS 中进行了 groupby,并对运行良好的组进行了汇总。

kl = ks.groupby('FIPS')

kl.aggregate(np.sum)

我只想要一个普通的数据框,但我有一个pandas.core.groupby.DataFrameGroupBy对象。

4

4 回答 4

22

结果一个普通的kl.aggregate(np.sum)DataFrame,您只需将其分配给一个变量即可进一步使用它。使用一些随机数据:

>>> df = DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
>>>                         'foo', 'bar', 'foo', 'foo'],
...                  'B' : ['one', 'one', 'two', 'three',
...                         'two', 'two', 'one', 'three'],
...                  'C' : randn(8), 'D' : randn(8)})
>>> grouped = df.groupby('A')
>>> grouped
<pandas.core.groupby.DataFrameGroupBy object at 0x04E2F630>
>>> test = grouped.aggregate(np.sum)
>>> test
            C         D
A                      
bar -1.852376  2.204224
foo -3.398196 -0.045082
于 2012-11-27T11:16:51.217 回答
20
 df_g.apply(lambda x: x) 

将返回原始数据框。

于 2018-03-10T09:55:23.853 回答
1

使用pd.concat,就像这样:

   pd.concat(map(lambda x: x[1], groups))

或者也保持index对齐:

   pd.concat(map(lambda x: x[1], groups)).sort_index()
于 2020-08-28T08:02:36.003 回答
1

您可以将groupby带有 .head('# of rows') 的结果输出到变量。

前任:df2 = grouped.head(100)

现在您有了一个包含所有分组数据的 Pandas 数据框“df2”。

于 2020-11-30T21:15:29.030 回答