假设我们采用 pandas 数据框...
name age family
0 john 1 1
1 jason 36 1
2 jane 32 1
3 jack 26 2
4 james 30 2
然后做一个groupby()
...
group_df = df.groupby('family')
group_df = group_df.aggregate({'name': name_join, 'age': pd.np.mean})
然后做一些聚合/汇总操作(在我的例子中,我的函数name_join
聚合了名称):
def name_join(list_names, concat='-'):
return concat.join(list_names)
因此,分组汇总输出为:
age name
family
1 23 john-jason-jane
2 28 jack-james
问题:
有没有一种快速、有效的方法可以从聚合表中获取以下内容?
name age family
0 john 23 1
1 jason 23 1
2 jane 23 1
3 jack 28 2
4 james 28 2
(注意:age
列值只是示例,我不在乎在此特定示例中平均后丢失的信息)
我认为我可以做到的方式看起来不太有效:
- 创建空数据框
- 从中的每一行中
group_df
,将名称分开 - 返回一个数据框,其行数与起始行中的名称一样多
- 将输出附加到空数据框