解决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
相关产品推荐
相关产品推荐

