提问人:Surbhi Jain 提问时间:7/16/2023 最后编辑:wjandreaSurbhi Jain 更新时间:7/16/2023 访问量:65
如何在python中将两个具有相同单位的数字相加
How to add two numbers having same units in python
问:
我有一个 pandas 数据帧,其中一列的值以千吨为单位,缩写为“kt”。现在,当我在国家/地区列和年份列上执行 groupby 并在值列上调用聚合函数 sum 时,它实际上并没有在值列中执行值总和。
执行上述操作后,将出现以下内容:
但是,预期输出应为:
此外,“Value”列的类型为 object。
任何帮助都是有用的。
答:
0赞
user19077881
7/16/2023
#1
如果您使用混合数字和字母的值,那么它们将是 Pandas dtype 对象的字符串。您需要拆分数字部分,转换为整数,放入新列中,然后将 groupby 与 sum 或其他任何内容一起使用。例如:
import pandas as pd
df = pd.DataFrame({'Country': ['Algeria', 'Algeria','Algeria','Angola', 'Angola'],
'Item': ['Wheat and products', 'Wheat and products','Wheat and products','Wheat and products','Wheat and products'],
'Year': [2004, 2004,2005,2004,2004],
'Value':['2731 kt', '2415 kt','2688 kt','2000 kt','1111 kt']
})
df['ValNum'] = df['Value'].str.extract(r"(\d+)").astype('int')
df2 = df.groupby(['Country', 'Year'])['ValNum'].sum()
print(df2)
给:
Country Year
Algeria 2004 5146
2005 2688
Angola 2004 3111
评论
"1234 kt"
1234
kt