看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)财务同事从系统导出的《差旅报销单》里,金额列全是字符串:
import pandas as pd
df = pd.DataFrame({
"单号": [1001, 1002, 1003, 1004],
"交通费": ["120.5", "85", "300.0", "缺失"], # 字符串,含中文“缺失”
"住宿费": ["400", "320", "500", "200"]
})
目前直接 df["交通费"] + df["住宿费"]
会报错;需要先把两列变成数值。
任务:
pd.to_numeric()
把 交通费
和 住宿费
转换为浮点数,遇到无法转换的值(如“缺失”)设为 NaN
。总额
,打印结果。代码如下:
(
df.set_index('单号')
.apply(pd.to_numeric, errors="coerce")
.assign(总额=lambda x: x.sum(axis=1))
)
输出:
交通费 住宿费 总额
单号
1001 120.5 400 520.5
1002 85.0 320 405.0
1003 300.0 500 800.0
1004 NaN 200 200.0
更新时间:2025-08-20 10:33:32 标签:pandas python 数字