来自Excel,非常愿意换成Pandas,我正在阅读Wes McKinneys的书……玩得很开心……而且还尝试了一些我自己的东西……
假设我们有一个可以通过以下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组合计算以下两件事:
我想让这些彼此作为结果数据框中的列。
我知道如何计算两个事实:
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非常容易:)
您可以将dict传递给该agg
方法。键是列名,每个值是您希望用于汇总列的对应函数:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句