我想在python中将多个值求和为1。请看下面我的数据图片。我想要将每个国家每年的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']
两者都是“有效”的,但都产生了巨大的价值。就像它不是求和,而是将数字相互粘贴在一起。我尝试通过使用: by df.Value.astype(float) & df.Value.astype(int)
将变量类型更改为numeric
不幸的是,这并没有解决问题。有没有人知道如何按组和时间对这些值进行求和?我还上传了一张真实数据集的照片。
发布于 2019-03-22 04:16:20
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()
https://stackoverflow.com/questions/55288399
复制相似问题