gpt4 book ai didi

python - 如何将聚合函数应用于 Pandas 中数据透视表的所有列

转载 作者:行者123 更新时间:2023-11-30 21:53:00 26 4
gpt4 key购买 nike

数据透视表正在计算某个现象每月发生的次数。这是简化的示例数据,后跟数据透视表:

+--------+------------+------------+
| ad_id | entreprise | date |
+--------+------------+------------+
| 172788 | A | 2020-01-28 |
| 172931 | A | 2020-01-26 |
| 172793 | B | 2020-01-26 |
| 172768 | C | 2020-01-19 |
| 173219 | C | 2020-01-14 |
| 173213 | D | 2020-01-13 |
+--------+------------+------------+

我的数据透视表代码如下:

my_pivot_table = pd.pivot_table(df[(df['date'] >= some_date) & ['date'] <= some_other_date)], 
values=['ad_id'], index=['entreprise'],
columns=['year', 'month'], aggfunc=['count'])

生成的表格如下所示:

+-------------+---------+----------+-----+----------+
| | 2018 | | | |
+-------------+---------+----------+-----+----------+
| entreprise | january | february | ... | december |
| A | 12 | 10 | ... | 8 |
| B | 24 | 12 | ... | 3 |
| ... | ... | ... | ... | ... |
| D | 31 | 18 | ... | 24 |
+-------------+---------+----------+-----+----------+

现在,我想添加一个列来提供月平均值,并执行其他操作,例如将上个月的计数与过去 12 个月的月平均值进行比较...

我尝试摆弄pivot_table的aggfunc参数,并尝试向原始数据帧添加平均列,但没有成功。

提前致谢!

最佳答案

因为您在 pivot_table 之后获得了 Multiindex 表,所以您可以使用:

df1 = df.mean(axis=1, level=0)
df1.columns = pd.MultiIndex.from_product([df1.columns, ['mean']])

或者:

df2 = df.mean(axis=1, level=1)
df2.columns = pd.MultiIndex.from_product([['all_years'], df2.columns])

关于python - 如何将聚合函数应用于 Pandas 中数据透视表的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59771415/

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