我想在python中将多个值求和。
请参阅下面的数据图片。我想对每个国家/地区每年AGE
的所有值求和。
而不是这样:
country TIME AGE Value
A 2017 20-60 200
A 2017 60-80 100
A 2016 20-60 200
A 2016 60-80 200
B 2017 20-60 300
B 2017 60-80 300
B 2016 20-60 400
B 2016 60-80 400
我想要这个:
country TIME Value
A 2017 300
A 2016 400
B 2017 600
B 2016 800
数据类型:
df4types
AGE object
Value object
dtype: object
数据按国家和TIME
具有多个索引。
如果已经尝试过:
df=df.groupby(by=["TIME","GEO"])['Value'].sum()
这:
df=df.groupby(by=["TIME","GEO"]).sum()['Value']
两者都“奏效”,但产生了巨大的价值。就像它不求和,而是将数字彼此粘贴在一起。我试图通过使用以下方式将变量类型更改为数字:
由df.Value.astype(float) & df.Value.astype(int)
不幸的是,这不能解决问题。有人知道如何正确按组和时间对值求和吗?我还上传了真实数据集的图片。
答案 0 :(得分:0)
df.Value = df.Value.astype(int)
或df.Value=pd.to_numeric(df.Value)
却无法正常工作,那么我敢打赌,您需要在该列中清理一些数据)完成上述操作后,请尝试以下代码。
import pandas as pd
df = pd.DataFrame(<your data here>)
result = df.groupby(by=['country','TIME']).sum()