假设我们拿一个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
型
(Note:age
列值只是示例,我不关心在此特定示例中求平均值后丢失的信息)
4条答案
按热度按时间ymdaylpp1#
粗略的等价物是
.reset_index()
,但将其视为groupby()
的“相反”可能没有帮助。你把一根弦分成几段,并保持每一段与“家庭”的联系。我的这个老答案可以完成这项工作。
只需首先将'family'设置为索引列,参考上面的链接,然后在最后输入
reset_index()
即可获得所需的结果。vfhzx4xs2#
原来
pd.groupby()
返回一个对象,其中原始数据存储在obj
中。所以取消分组只是取出原始数据。字符串
示例
型
pprl5pva3#
下面是一个完整的例子,从分组对象中恢复原始的Restrame
个字符
vwhgwdsa4#
有几种方法可以撤消DataFrame.groupby,一种方法是执行DataFrame.groupby.filter(lambda x:True),这会返回到原始DataFrame。