如何从同时包含数字和字符串的DataFrame单元格中拆分提取数值与货币单位
pandas拆分单元格数值与货币单位实现方案
实现步骤
- 导入依赖并构造原始数据
import pandas as pd # 原始数据样例 raw_df = pd.DataFrame({ "Mode": ["Car", "Bike"], "Small": ["20USD", "10RS"], "medium": ["40USD", "30RS"], "Large": ["60USD", "45RS"] })
- 提取货币单位列
由于样例中同一行所有金额的货币单位一致,直接从任意金额列提取非数字字符即可:
raw_df['Currency'] = raw_df['Small'].str.extract(r'(\D+)', expand=False)
- 转换金额列为纯数值
遍历所有金额列,提取数字部分并转换为整数类型:
amount_cols = ["Small", "medium", "Large"] for col in amount_cols: raw_df[col] = raw_df[col].str.extract(r'(\d+)', expand=False).astype(int)
- 调整列顺序与列名,匹配目标输出格式
result_df = raw_df[["Mode", "Currency", "Small", "medium", "Large"]].rename(columns={"medium": "Medium"})
输出结果
打印result_df即可得到你需要的格式:
Mode Currency Small Medium Large 0 Car USD 20 40 60 1 Bike RS 10 30 45
内容的提问来源于stack exchange,提问作者Chandan N
相关产品推荐
相关产品推荐

