gpt4 book ai didi

python - 如何阻止聚合函数向数据帧添加不需要的行?

转载 作者:行者123 更新时间:2023-12-04 07:51:48 24 4
gpt4 key购买 nike

我写了一行代码,按列对数据框进行分组df = df.groupby(['where','when']).agg({'col1': ['max'], 'col2': ['sum']})使用上面的代码后,输出中的聚合列有两个额外的行,'max' 和 'sum' 占据了 'col1' 和 'col2' 索引下方的一列。它看起来像这样:



第 1 列
列2



最大限度


在哪里
什么时候



1
一种
一种

工作
2




这是我预期的结果:


在哪里
什么时候
第 1 列
列2



1
一种
一种

工作
2




我想将 col1 和 col2 都降低到与位置和月份相同的行,同时从显示中删除“max”和“sum”。我真的想不出一种方法来完成这项工作,因此将不胜感激。

最佳答案

您需要的是reset_index并提前将列名传递给聚合函数。
使用以下内容:

df = df.groupby(['where','when']).agg(col1 = ('col1', 'max'), col2 = ('col2', 'sum')).reset_index()
数据框:
   where  when  col1  col2
0 home 1 1 1
1 work 2 2 2
2 home 1 3 3
输出:
   where  when  col1  col2
0 home 1 3 3
1 work 2 2 2
更新:
我们可以通过 as_index = False到 groupby 这将阻止 Pandas 将键作为索引,因此我们之后不需要重置索引。
df = df.groupby(['where','when'], as_index = False).agg(col1 = ('col1', 'max'), col2 = ('col2', 'sum'))

关于python - 如何阻止聚合函数向数据帧添加不需要的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66928432/

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