gpt4 book ai didi

python - pandas中是否有与.groupby相反的 "ungroup by"操作?

转载 作者:太空狗 更新时间:2023-10-29 16:57:01 26 4
gpt4 key购买 nike

假设我们采用一个 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 列值只是示例,我不关心在这个特定示例中平均后丢失的信息)

我认为我可以做到的方式看起来不太有效:

  1. 创建空数据框
  2. group_df 中的每一行,分隔名称
  3. 返回一个数据框,其行数与起始行中的名称数相同
  4. 将输出附加到空数据框

最佳答案

大致等同于 .reset_index(),但将其视为 groupby() .

您正在将一个字符串拆分成多个部分,并维护每个部分与“家庭”的关联。 This old answer of mine完成工作。

只需先将'family'设置为索引列,引用上面的链接,然后在最后使用reset_index()即可得到您想要的结果。

关于python - pandas中是否有与.groupby相反的 "ungroup by"操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20122521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com