You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pd.to_numeric后部分值变NaN,如何将‘-’转为0并转数值型?

解决方案

直接按以下步骤操作即可完成需求:

  1. 先将列中单独的-替换为字符串'0',同时移除所有$符号
  2. 将处理后的列转换为数值类型

具体代码

# 先替换'-'为'0',再移除$符号(regex=False避免转义问题)
df_rental['by_day'] = df_rental['by_day'].replace('-', '0').str.replace('$', '', regex=False)

# 转换为数值型
df_rental['by_day'] = pd.to_numeric(df_rental['by_day'])

或者用链式写法简化:

df_rental['by_day'] = pd.to_numeric(
    df_rental['by_day'].replace('-', '0').str.replace('$', '', regex=False)
)

补充说明

之前操作出现NaN的原因是:列中的-未被提前处理,pd.to_numeric无法将单独的横线-转换为数值,所以会被转为NaN。先把-替换为0再清理符号,就能确保所有可转换的值都被正确转为数值。

内容的提问来源于stack exchange,提问作者FalloutATS21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:25:24