pandas如何将指定列中的非数字值转换为nan
pandas将指定列非数字值转换为NaN的实现方法
你可以直接使用pandas内置的pd.to_numeric()函数实现需求,只需要指定错误处理参数为coerce,就会自动将无法转换为数字的内容替换为NaN。
核心代码
import pandas as pd # 假设你的DataFrame已经读取/构造完成,执行这一行即可 df['price'] = pd.to_numeric(df['price'], errors='coerce')
完整可运行示例
针对你给出的测试数据,完整执行代码如下:
import pandas as pd import io # 读取示例数据 csv_data = """ID, name, qty, price 1, pen, 4, 55 2, book, 5, ai 3, PENCIL, 5, 100 4, book2, 10, si """ df = pd.read_csv(io.StringIO(csv_data), skipinitialspace=True) # 转换price列,非数字自动转为NaN df['price'] = pd.to_numeric(df['price'], errors='coerce') # 输出结果验证 print(df)
运行后输出的price列就会符合你的预期,非数字的ai、si都会被替换为NaN。
补充说明
如果你的实际数据中price列存在带特殊符号的数字(比如人民币符号、千位分隔逗号等),可以先做字符串清洗去除无关符号后,再执行上述转换逻辑即可。
内容的提问来源于stack exchange,提问作者Lilly
相关产品推荐
相关产品推荐

