Python:如何根据规则转换DF中的值?



我有一个Dataframe,其中包含一列字符串,如EURUSD, GBPUSD, CNYUSD等:

CCY
GBPUSD
EURUSD
CNYUSD

我如何将这列中的所有值从EURUSD转换为USDEUR, GBPUSD转换为USDGBP,等等,像这样?

CCY
USDGBP
USDEUR
USDCNY

我不太明白你的意思。但是如果你想用相同的值创建一个新的列,你只需要做。

df['USDEUR']= df['EURUSD'].values

如果你想重命名列,你可以

df.rename(columns = {'EURUSD':'USDEUR'}, inplace = True)
df['CCY'] = df['CCY'].apply(lambda x: x[3:] + x[:3])
import pandas as pd
def convertCurrency(value):
switch = {
'EURUSD':'USDEUR',
'GBPUSD': 'USDGBP',
'CNYUSD': 'USDCNY'
}
return switch.get(value, 'invalid')
df = pd.DataFrame({'Currency':['EURUSD', 'GBPUSD', 'CNYUSD']})
df['Currency Converted'] = df['Currency'].apply(convertCurrency)
display(df)

输出:

Currency    Currency Converted
0   EURUSD      USDEUR
1   GBPUSD      USDGBP
2   CNYUSD      USDCNY

使用向量函数

df['currency'] = df['currency'].str[3:]+df['currency'].str[:3]

或者,如果您想要有条件的替换(仅当它是第二个时才将USD移到第一个)),使用正则表达式:

df['currency'] = df['currency'].str.replace(r'(...)USD', r'USD1', regex=True)

输出:

currency
0   USDEUR
1   USDGBP
2   USDCNY

最新更新