使用 Python 对列的值求和

Jac*_*ket 5 python dataframe pandas

我是 python 新手,我想从 csv 文件中读取一列值 \xe2\x80\x8b\xe2\x80\x8b 并将它们添加在一起,但仅限于“,”左侧的值\n我的 csv文件:

\n
Name     Code  \nAngel    19;90\nEduardo  20;21\nMiguel   30;45 \n
Run Code Online (Sandbox Code Playgroud)\n

我希望能够仅对“代码”列左侧的数字求和,以便我的输出为“19+20+30 = 69”。\n我尝试删除“;” 并将字符串转换为 int 但求和,但将数字连接在一起,我得到以下输出:

\n
Your final sum is : 1990 +2021 +3045 = 7056\n
Run Code Online (Sandbox Code Playgroud)\n

jez*_*ael 5

;如果在使用之前需要求和值Series.str.extract并强制转换为整数,然后sum

out = df['Code'].str.extract('(.*);', expand=False).astype('int').sum()
Run Code Online (Sandbox Code Playgroud)

或者Series.str.split与选择列表的第一个值一起使用str[0]

out = df['Code'].str.split(';').str[0].astype('int').sum()
Run Code Online (Sandbox Code Playgroud)

expand=True如果需要对所有值求和,则首先对每行求和,然后创建 DataFrame Series

out = df['Code'].str.split(';', expand=True).astype('int').sum().sum()
Run Code Online (Sandbox Code Playgroud)

如果需要总和而不;使用Series.str.replace

out = df['Code'].str.replace(';','', regex=True).astype('int').sum()
Run Code Online (Sandbox Code Playgroud)