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

Python回归分析:如何从CSV的Object类型价格数据中提取数值?

解决CSV中Object类型price字段提取数值的问题

步骤1:先确认price字段的具体格式

先查看字段内容,判断干扰字符类型:

# 查看前几条数据
print(data_11['price'].head())
# 查看唯一值,确认格式差异
print(data_11['price'].unique())

步骤2:根据具体格式选择处理方法

  • 带货币符号/千分位逗号的情况
    如果price是类似$1,299.99或2,500这样的格式,先清理符号再转数值:
# 移除$和逗号,转换为float类型
data_11['price'] = data_11['price'].str.replace('$', '', regex=False).str.replace(',', '', regex=False).astype(float)
  • 包含非数值描述字符的情况
    如果price是类似售价:399元或Price 599这样的格式,用正则提取数字部分:
import re
# 提取字符串中的数字(支持整数和小数)
data_11['price'] = data_11['price'].apply(lambda x: re.findall(r'\d+\.?\d*', str(x))[0]).astype(float)
  • 混合类型(部分数值、部分字符串)
    如果字段里既有数字又有无法直接转换的字符串,用pd.to_numeric强制转换,无法转换的设为NaN后处理缺失值:
import pandas as pd
# 转换为数值,错误值设为NaN
data_11['price'] = pd.to_numeric(data_11['price'], errors='coerce')
# 用均值填充缺失值(也可根据需求用中位数、众数或删除行)
data_11['price'] = data_11['price'].fillna(data_11['price'].mean())

步骤3:重新定义变量

处理完成后,再执行你的变量定义代码即可:

x = data_11.drop(['name', 'price'], axis=1).values
y = data_11['price'].values

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:21:15