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

解决DataFrame中PRICE PAID列从object转int的类型转换错误

解决DataFrame中'PRICE PAID'列转int类型的方法

你的问题核心是列中存在逗号分隔符和前导空格,导致直接转换失败。正确的处理方式是先清理这些非数字字符,再进行类型转换:

方法一:分步清理+转换

# 1. 移除所有逗号
top_buys_df['PRICE PAID'] = top_buys_df['PRICE PAID'].str.replace(',', '')
# 2. 移除前后空格(部分值有前导空格,比如第6行的" 8,40,00,000")
top_buys_df['PRICE PAID'] = top_buys_df['PRICE PAID'].str.strip()
# 3. 转换为int类型
top_buys_df['PRICE PAID'] = top_buys_df['PRICE PAID'].astype(int)

方法二:链式调用一步完成

top_buys_df['PRICE PAID'] = top_buys_df['PRICE PAID'].str.replace(',', '').str.strip().astype(int)

为什么之前的方法失败?

  • astype(int)直接转换:字符串包含逗号和空格,不是合法的整数格式,所以报错。
  • pd.to_numeric()默认不处理非数字字符(如逗号),无法解析带逗号的字符串。
  • 替换逗号为点:生成了类似24.75.00.000的格式,这不是有效的数字(多个小数点),自然无法转换。

验证转换后的数据类型:

print(top_buys_df['PRICE PAID'].dtype)
# 输出: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:42:39