类别中的 Pandas 数据框总和

我有一个熊猫数据框,看起来像这样:


import pandas as pd


ticker = ['YAR.OL', 'DNB.OL', 'TSLA', 'NHY.OL', 'SBO.OL', 'STB.OL']

country = ['Norway', 'Norway', 'United States', 'Norway', 'Norway', 'Norway']

alloc = [11.822, 2.917, 0.355, 74.158, 9.673, 1.075]


dfn = pd.DataFrame(country,columns =['country'])

dfn['Allocation'] = pd.DataFrame(alloc)

http://img.mukewang.com/641279d30001163902830275.jpg

我想总结每个国家的分配,例如: 挪威:99,645 美国:0,355

我如何使用我生成的 df 在 python 中执行此操作?



PIPIONE
浏览 72回答 2
2回答

慕森王

只需在末尾添加一行代码dfn=dfn.groupby(['country']).sum()乍看上去import pandas as pdticker = ['YAR.OL', 'DNB.OL', 'TSLA', 'NHY.OL', 'SBO.OL', 'STB.OL']country = ['Norway', 'Norway', 'United States', 'Norway', 'Norway', 'Norway']alloc = [11.822, 2.917, 0.355, 74.158, 9.673, 1.075]dfn = pd.DataFrame(country,columns =['country'])dfn['Allocation'] = pd.DataFrame(alloc)dfn=dfn.groupby(['country']).sum()print(dfn)输出:country           Allocation               Norway             99.645United States       0.355

料青山看我应如是

首先,你必须使用pandas.DataFrame.groupby函数。请参阅此处的解释。通过pandas.DataFrame.groupby你可以在一组名字中做任何你想做的事。就像mean()你的情况一样sum()。>>> dfn2 = dfn.groupby(['country'])>>> dfn2.sum()country        Allocation          Norway             99.645United States       0.355您也可以在一行中执行此操作。>>> dfn.groupby(['country']).sum()country        AllocationNorway             99.645United States       0.355
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python