我有一个数据帧,并在 FIPS 上进行了分组,然后对这些组求和,效果很好。
kl = ks.groupby('FIPS')
kl.aggregate(np.sum)
我只想要一个正常的Dataframe,但是我得到了一个pandas.core.groupby.DataFrameGroupBy
对象。
我有一个数据帧,并在 FIPS 上进行了分组,然后对这些组求和,效果很好。
kl = ks.groupby('FIPS')
kl.aggregate(np.sum)
我只想要一个正常的Dataframe,但是我得到了一个pandas.core.groupby.DataFrameGroupBy
对象。
df_g.apply(lambda x: x)
将返回原始数据框。
grouped.to_df()
。然而,当我查看了 GroupBy
对象的 API 后,发现并没有这样的函数,所以我回来告诉大家这是最简单的方法。哈哈。 - C.K.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
filter
方法。 - Ken D.obj
,其中包含应用了分组转换的原始对象。请参见https://dev59.com/ZWIj5IYBdhLWcg3wkl2U#66879388。还提出了一个Pandas功能请求,截至本文撰写时仍然保持开放状态:https://github.com/pandas-dev/pandas/issues/43902。 - Wolfram Arnoldpd.concat
,就像这样: pd.concat(map(lambda x: x[1], groups))
或者也可以保留 index
的对齐:
pd.concat(map(lambda x: x[1], groups)).sort_index()
您可以使用 `.head('# of rows')` 将 `groupby` 的结果输出到一个变量中。
例如:df2 = grouped.head(100)
现在您已经有了一个包含所有分组数据的 Pandas 数据框 "df2"。