Jac*_*ket 5 python dataframe pandas
我是 python 新手,我想从 csv 文件中读取一列值 \xe2\x80\x8b\xe2\x80\x8b 并将它们添加在一起,但仅限于“,”左侧的值\n我的 csv文件:
\nName Code \nAngel 19;90\nEduardo 20;21\nMiguel 30;45 \nRun Code Online (Sandbox Code Playgroud)\n我希望能够仅对“代码”列左侧的数字求和,以便我的输出为“19+20+30 = 69”。\n我尝试删除“;” 并将字符串转换为 int 但求和,但将数字连接在一起,我得到以下输出:
\nYour final sum is : 1990 +2021 +3045 = 7056\nRun Code Online (Sandbox Code Playgroud)\n
;如果在使用之前需要求和值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)
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |