如何在Pandas数据框中将货币符号前缀拆分至单独列
Pandas拆分Amount列为货币符号列和金额列
针对你提供的Amount列数据(包含带₹符号、纯数字、破折号占位的情况),可以通过以下步骤拆分出货币符号列和清洗后的金额列:
步骤1:提取货币符号
使用正则表达式提取开头的非数字、非破折号字符,作为货币符号:
import pandas as pd # 假设你的数据框名为df df['Currency'] = df['Amount'].str.extract(r'^([^\d—]+)?', expand=False)
正则^([^\d—]+)?会匹配字符串开头的所有非数字、非破折号的字符,没有符号的行将返回NaN。
步骤2:提取并清洗金额
先移除货币符号、千分位逗号,再将破折号替换为缺失值,最后转换为整数类型:
df['Cleaned_Amount'] = ( df['Amount'] .str.replace(r'^[^\d]+', '', regex=True) # 移除开头的非数字字符(即货币符号) .str.replace(',', '') # 移除千分位逗号 .replace('—', pd.NA) # 将破折号替换为标准缺失值 .astype('Int64') # 转换为支持缺失值的整数类型 )
结果说明
处理后的数据框会新增Currency(货币符号,如₹或NaN)和Cleaned_Amount(整数格式的金额,缺失值显示为<NA>)两列,原Amount列可以根据需要保留或删除。
内容的提问来源于stack exchange,提问作者suresh kumar
相关产品推荐
相关产品推荐

