你可以用
id_df = grouped['ID'].apply(lambda x: pd.Series(x.values)).unstack()
创建
id_df没有中间
resultDataframe。
import pandas as pdimport numpy as npnp.random.seed(2016)df = pd.Dataframe({'Group': ['A', 'C', 'B', 'A', 'C', 'C'], 'ID': [1, 2, 3, 4, 5, 6], 'Value': np.random.randint(1, 100, 6)})grouped = df.groupby('Group')values = grouped['Value'].agg('sum')id_df = grouped['ID'].apply(lambda x: pd.Series(x.values)).unstack()id_df = id_df.rename(columns={i: 'ID{}'.format(i + 1) for i in range(id_df.shape[1])})result = pd.concat([id_df, values], axis=1)print(result)产量
ID1 ID2 ID3 ValueGroupA 1 4 NaN 77B 3 NaN NaN 84C 2 5 6 86



