如何用Python提取Amount后的数字及货币代码至两列
用Python提取金额数字与货币代码并分栏存储
可以用正则表达式匹配目标内容,再借助pandas将提取结果存入不同列,具体实现如下:
核心思路
通过正则表达式精准匹配Amount:后的金额数字(支持整数、小数格式)和货币代码(大写字母标识),再将提取到的两组数据整理成DataFrame的两列。
代码实现
import re import pandas as pd # 你的示例文本集合 sample_texts = [ "退款成功。IBE payment ID 79104467 | Transaction-ref: 73462794 | Amount: 50.00 EUR", "通过Hyperwallet完成退款。Transaction-ref: 48886217 | Amount: 214.64 USD | Hyperwallet payout id: 581082-2" ] # 正则匹配规则:捕获Amount后的数字(含小数)和货币代码 pattern = re.compile(r'Amount: (\d+\.?\d*) ([A-Z]+)') # 批量提取数据 extracted_data = [] for text in sample_texts: match_result = pattern.search(text) if match_result: # 提取捕获组中的内容:第一个是金额,第二个是货币代码 amount_val = match_result.group(1) currency_val = match_result.group(2) extracted_data.append({'amount': amount_val, 'currency': currency_val}) # 转换为DataFrame,自动分成两列 result_df = pd.DataFrame(extracted_data) print(result_df)
输出结果
amount currency 0 50.00 EUR 1 214.64 USD
额外优化说明
- 如果需要将金额转为数值类型(方便后续计算),可以添加一行:
result_df['amount'] = pd.to_numeric(result_df['amount']) - 如果单条文本中存在多个
Amount条目,改用pattern.findall(text)来提取所有匹配项即可。
内容的提问来源于stack exchange,提问作者Mariam Imran
相关产品推荐
相关产品推荐

