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

无法用strip/replace移除size_sq.ft列逗号,求转为数值类型的解决方法

Kaggle数据集size_sq.ft列逗号移除与数值转换方案

为什么str.strip(",")没用?

str.strip()只会移除字符串首尾的指定字符,而你数据里的逗号肯定是在数字中间(比如1,200这种格式),所以这个方法根本碰不到中间的逗号,自然没效果也不会报错。

正确处理步骤

  • 全局替换逗号:用str.replace()把列里所有逗号清空,这才是处理中间逗号的正确方式:

    df['size_sq.ft'] = df['size_sq.ft'].str.replace(',', '', regex=False)
    

    加regex=False是为了避免把逗号当成正则表达式字符,运行更快更稳妥。

  • 清理异常值:转换前先检查有没有非数字内容(比如空值、特殊符号),避免转换失败:

    # 找出所有无法转成数字的行
    bad_rows = df[~df['size_sq.ft'].str.match(r'^\d+(\.\d+)?$', na=False)]
    print(bad_rows)
    

    遇到异常值可以选择删除、填充或手动修正,比如用中位数填充空值:

    df['size_sq.ft'] = df['size_sq.ft'].fillna(df['size_sq.ft'].median())
    
  • 转换为数值类型:两种常用方法:

    1. 直接转类型(适合无异常值的情况):
      # 转整数
      df['size_sq.ft'] = df['size_sq.ft'].astype(int)
      # 或转浮点数
      df['size_sq.ft'] = df['size_sq.ft'].astype(float)
      
    2. 用pd.to_numeric()自动处理异常(把无法转换的内容转成NaN):
      df['size_sq.ft'] = pd.to_numeric(df['size_sq.ft'], errors='coerce')
      

完整可运行代码

# 1. 移除所有逗号
df['size_sq.ft'] = df['size_sq.ft'].str.replace(',', '', regex=False)
# 2. 转换为数值,异常值转NaN
df['size_sq.ft'] = pd.to_numeric(df['size_sq.ft'], errors='coerce')
# 3. 可选:填充NaN值(用中位数更稳健)
df['size_sq.ft'] = df['size_sq.ft'].fillna(df['size_sq.ft'].median())
# 4. 转整数(如果不需要小数精度)
df['size_sq.ft'] = df['size_sq.ft'].astype(int)

内容的提问来源于stack exchange,提问作者Md. Arian Rahman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:00:47