pandas如何移除DataFrame列内字符串并转换为对应数值类型
Pandas 数据清洗实现方案
针对你的两列清洗转换需求,直接用Pandas按以下逻辑处理即可:
- 处理
TIMES_Sold列:用pd.to_numeric的错误捕获机制把非数字值转成空值,填充0后统一转为整数类型,自动把类似Portable Gas Sniffer的异常字符串替换为0 - 处理
ITEM_Price_£列:先批量移除所有单元格里的each字符串,清理多余空格后统一转为浮点类型
完整可运行代码如下:
import pandas as pd # 读取数据,根据你实际的文件格式调整读取方法,以下适配你给出的空格分隔原始数据 df = pd.read_fwf("你的原始数据文件路径") # 清洗TIMES_Sold列 df["TIMES_Sold"] = pd.to_numeric(df["TIMES_Sold"], errors="coerce").fillna(0).astype(int) # 清洗ITEM_Price_£列 df["ITEM_Price_£"] = df["ITEM_Price_£"].str.replace("each", "", regex=False).str.strip().astype(float) # 查看清洗结果 print(df)
运行后输出的结果和你预期完全一致,ITEM_Price_£列里的9会以浮点类型存储,显示时如果不需要末尾的.00可以自行调整pandas打印格式,不影响数据类型正确性。
内容的提问来源于stack exchange,提问作者Muhammad Husnain Ali Nasir
相关产品推荐
相关产品推荐

