如何将DataFrame中的货币格式列转换为float浮点数值类型
解决方案
你的数据是典型的欧盟地区货币表示规则:.作为千位分隔符,,作为小数分隔符,不需要用复杂正则,直接两步字符替换后转类型即可。
假设你的DataFrame名为df,待转换的货币列名为amount,可直接使用以下代码:
import pandas as pd # 执行转换 df['amount'] = df['amount'].str.replace('.', '', regex=False) \ .str.replace(',', '.', regex=False) \ .astype(float)
转换逻辑说明
- 第一步删除所有千位分隔符
.:比如原数值10.785,177处理后变为10785,177 - 第二步把表示小数点的
,替换为标准浮点小数点.:处理后变为10785.177 - 最后直接转为float类型即可用于统计计算
特殊情况处理
如果列中存在空值,可先填充默认值再转换,避免报错:
df['amount'] = df['amount'].fillna('0') \ .str.replace('.', '', regex=False) \ .str.replace(',', '.', regex=False) \ .astype(float)
内容的提问来源于stack exchange,提问作者Davi Magalhães
相关产品推荐
相关产品推荐

