用另一个 DataFrame 中的匹配浮点数替换 DataFrame 列中的字符串

问题描述 投票:0回答:1

我有以下两个数据框:

fx = {'FX_Pairs': ['EUR', 'USD', 'GBP'],
        'FX_Rate': [0.92, 1, 0.78]}



df = {'Company': ['LVMH', 'Apple', 'Shell'],
      'FX_Rate': ['EUR', 'USD', 'GBP'],}

fx_df = pd.DataFrame(fx)
df_df = pd.DataFrame(df)

我想将 df 数据框中的“FX_Rate”列替换为 fx 数据框中相应的“FX_Rates”值。

我尝试使用

df = df.merge(fx, on="FX_Rate", how="left")

它有效,但它添加了另一列,而我想更换该列。

python pandas dataframe merge
1个回答
0
投票

合并后您可以删除任何额外的列。合并时为右侧和左侧数据帧分配适当的后缀

df_df \
    .merge(fx_df,
           right_on="FX_Pairs",
           left_on="FX_Rate",
           how="left",
           suffixes=["_txt", ""]) \
    .drop(["FX_Rate_txt", "FX_Pairs"], axis=1)

输出:

  Company  FX_Rate
0    LVMH     0.92
1   Apple     1.00
2   Shell     0.78
© www.soinside.com 2019 - 2024. All rights reserved.