You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何按规则转换DataFrame指定列的字符串值

货币对列转换实现方法

你处理的是标准3位ISO货币码拼接的6位货币对翻转需求,直接用pandas内置的字符串切片处理即可,逻辑简单、执行效率高,不会出现匹配错误。

  • 核心逻辑:所有符合格式的货币对都是前3位为基准货币、后3位为计价货币,你需要的转换效果等价于把字符串后3位移动到最前面,和前3位交换位置即可。

全量转换(所有货币对统一翻转)

如果需要对CCY列所有值做前后3位交换,直接用如下代码:

import pandas as pd

# 构造原始样例数据
df = pd.DataFrame({
    'CCY': ['GBPUSD', 'EURUSD', 'CNYUSD']
})

# 核心转换逻辑:取字符串后3位拼接前3位
df['CCY'] = df['CCY'].str[-3:] + df['CCY'].str[:3]

执行后打印df即可得到目标结果:

CCY
0  USDGBP
1  USDEUR
2  USDCNY

定向转换(仅后缀为USD的货币对翻转)

如果后续数据里存在非USD计价的货币对(比如EURGBP、GBPJPY这类)不需要翻转,可以加一层筛选判断,只处理后3位是USD的条目:

# 筛选出所有后缀为USD的行
usd_pair_mask = df['CCY'].str.endswith('USD')
# 仅对符合条件的行做转换
df.loc[usd_pair_mask, 'CCY'] = 'USD' + df.loc[usd_pair_mask, 'CCY'].str[:3]

注意:以上方法仅适用于标准3位货币码拼接的6位货币对场景,如果存在非标准长度的货币代码(比如长度不为3的加密货币代码),需要先根据固定分隔符或者货币码映射表做拆分再拼接。

内容的提问来源于stack exchange,提问作者Naituil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 19:30:10