gpt4 book ai didi

Python pandas 模仿 excel 数据透视表

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:32 24 4
gpt4 key购买 nike

来自 Excel,非常愿意改用 Pandas,我正在阅读 Wes McKinney 的书......从中获得了很多乐趣......但也尝试了一些我自己的东西......

假设我们有一个可以通过以下 csv 文件读取的数据框:

city,inhabitants,city_type,county
city a,9483,city,diggersville
city b,2628,city,diggersville
city c,5206,city,diggersville
city d,5206,city,diggersville
city e,839,village,crazytown
city f,3574,city,crazytown
city g,35,village,crazytown
city h,8214,city,downsend
city i,4278,city,downsend

所以我的代码应该是这样的:

data = pd.read_csv('test.txt')

我想计算每个县和 city_type 组合的以下两件事:

  1. 居民总数
  2. 城市/村庄数量

并且我希望将它们彼此分开作为结果数据框中的列。

我知道如何计算两个单独的事实:

data.groupby(['city_type','county']).sum()
data.groupby(['city_type','county']).city.count()

但如上所述,我希望将这些组合到一个结果数据框中(如 Excel 中的数据透视表):

                         my_count   my_sum
city_type county
city crazytown 1 3574
diggersville 4 22523
downsend 2 12492
village crazytown 2 874

感谢任何关于如何完成的帮助,因为我真的想向我的同事们展示 Python 非常简单 :)

最佳答案

您可以 pass a dict to the agg method .键是列名,每个值是您希望用于聚合列的相应函数:

In [98]: data.groupby(['city_type','county']).agg(
{'city': 'count', 'inhabitants': 'sum'})
Out[98]:
inhabitants city
city_type county
city crazytown 3574 1
diggersville 22523 4
downsend 12492 2
village crazytown 874 2

关于Python pandas 模仿 excel 数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494782/

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