使用pd.to_numeric后部分值变NaN,如何将‘-’转为0并转数值型?
解决方案
直接按以下步骤操作即可完成需求:
- 先将列中单独的
-替换为字符串'0',同时移除所有$符号 - 将处理后的列转换为数值类型
具体代码
# 先替换'-'为'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
相关产品推荐
相关产品推荐

