将pandas列Series转换为整数等类型并求和是否有更简便的方法?
Pandas 混合字符串数值列求和的更简洁实现
首先纠正一个API认知误区:pd.to_numeric原生支持Series类型作为输入,它的首个参数兼容所有一维类数组结构,包括Series、列表等都可直接传入。
以下是两种更简洁的实现方案:
通用场景方案(兼容任意非数字异常值)
适合列中除空字符串外,还可能存在其他无法转换为数字的异常值的场景,通过参数搭配可省略dropna步骤:
import pandas as pd df = pd.DataFrame([ [ 'a', '100' ], [ 'b', '' ], [ 'c', '300' ], ]) # 无法解析的值自动转NaN,填充0后求和再转整型 res = pd.to_numeric(df[1], errors='coerce').fillna(0).sum().astype(int) print(res)
运行输出为400,和你原有方案结果完全一致,链式调用步骤更少,逻辑更连贯。
特定场景方案(仅需处理空字符串异常)
如果你的业务场景中只有空字符串属于需要跳过的异常值,没有其他无效数字格式,可直接替换空值后转换求和,代码更精简:
res = df[1].replace('', 0).astype(int).sum()
内容的提问来源于stack exchange,提问作者mrkbutty
相关产品推荐
相关产品推荐

