python - 为什么我的数据框没有求和?

标签 python pandas sum

import pandas as pd
output=pd.read_csv('output.csv',encoding='big5')

output['airplane'].sum()

我试图对数据框中的数字求和,但是当调用 sum() 时,它只是打印出我想要求和的数字。为什么它不将所有数字相加?

'5,0514,7834,3734,7925,4624,9404,8344,9045,1964,0213,9405,0515,1894,9805,0556,0595,7194,6255,4985,3305,3175,3785,6494,5514,3335,1605,3175,3175,3435,8994,6164,3145,2915,2445,2905,5055,7344,5074,1965,4815,6215,6135,6756,0035,1004,0065,5815,2963,1683,5623,8734,1104,2144,6275,3745,2025,8545,3684,5614,4245,3405,0525,0985,0945,6404,6874,3575,0355,0665,2985,1125,5954,9374,4015,2595,1505,2215,1755,9214,6694,3595,2935,2185,2695,3356,1814,9284,5755,1725,3925,8546,4215,5494,5423,7324,63

最佳答案

, 替换为 str.replace 为空字符串或replace然后通过 astype 转换为 int ,因为 , 是千位分隔符:

output = pd.DataFrame({'airplane':['5,051','4,783','4,373']})
print (output)
  airplane
0    5,051
1    4,783
2    4,373

print (output['airplane'].sum())
5,0514,7834,373

print (output['airplane'].str.replace(',','').astype(int).sum())
14207
<小时/>
print (output['airplane'].replace(',','', regex=True).astype(int).sum())
14207

但是您也可以尝试将参数 thousand 添加到 read_csv :

output=pd.read_csv('output.csv',encoding='big5', thousands=',')

print (output['airplane'].sum())

关于python - 为什么我的数据框没有求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42629020/

相关文章:

sql - SAS层次结构总和

python - 无法绘制图表

python - Pandas DataFrame 聚合列,其他列的名称作为值

mysql - if null 值子查询返回 null

python - Pandas groupby 将重复的行拆分为列

python - 断言不相等的相同数据帧 - Python Pandas

python - 我在 groupby 上应用了 sum() ,我想对最后一列的值进行排序

Python内存问题

python - 如何使用python从远程终端获取结果

python - 为什么我的代码在交互式 shell 中运行,但在从文件运行时却不行?