我的问题似乎很简单,但我找不到答案。 我试图使用熊猫中的sum()来计算在阿尔巴尼亚有多少男女试图自杀,这是基于kaggle提供的数据集
代码:
import pandas as pd
pd.options.mode.chained_assignment = None
#Create a dataframe
suicide = pd.read_csv('who_suicide_statistics.csv', header=None)
#Rename column names because it was int
suicide = suicide.rename(columns={0: 'country', 1: 'year', 2: 'sex', 3: 'age', 4:'suicides_no', 5: 'population'})
#Delete first row because it was a duplicate with column names
suicide = suicide.iloc[1: , :]
#Filter values only with Albania
albania_suicide = suicide.loc[(suicide['country'] == 'Albania')]
#Delete rows with Nan values
albania_suicide.dropna(subset=['suicides_no'], inplace=True)
# Is it more women or men who attempts suicide?
print(albania_suicide.loc[albania_suicide['sex'] == 'female', 'suicides_no'].sum())
输出为:
"144600185403252701074201010771206420121378222161091122116760232109160191351646350029412262147151411491309620111733300000000000013814093209191750000006612272"
这些数字被一个接一个地显示,就好像它们被当作字符串一样。 应该是14+4+6+0+0+18
您的
suicides_no
列可能是字符串类型(数字字符串)。如果您确定这些值都应该是数字,您可以尝试,例如或者在代码求和之前将数据类型永久转换为int:
你试过这样的吗?很难知道为什么在没有那行代码的情况下要进行串联而不是求和
相关问题 更多 >
编程相关推荐