Python如何去除DataFrame中object类型列的引号并转换为float类型
问题原因
你当前代码仅替换了双引号,而报错提示的异常值'5769842393258'外层包裹的是单引号,未被清理的单引号导致float类型转换失败。
正确处理代码
推荐用pandas原生字符串处理方法,容错性更高:
import pandas as pd import numpy as np # 同时清理字段值中的所有单引号、双引号 df["Customer id"] = df["Customer id"].str.replace(r"['\"]", "", regex=True) # 转换为float类型,errors参数可根据需求调整 # errors="coerce":无法转换的值自动设为NaN,不抛出报错 # errors="raise":遇到无法转换的值直接抛出异常,和原生转换逻辑一致 df["Customer id"] = pd.to_numeric(df["Customer id"], errors="coerce")
如果要保留你原本的numpy转换写法,仅修改替换规则即可:
df["Customer id"] = df["Customer id"].replace(r"['\"]", '', regex=True) df["Customer id"] = np.array(df["Customer id"], dtype=float)
内容的提问来源于stack exchange,提问作者SEIKO5
相关产品推荐
相关产品推荐

