根据值将 df1 列与 df2 列交换

Swap df1 column with df2 column, based on value

目标:根据“df_state.abbr”将 df_hsa.stateabbr 换成 df_state.state

是否有这样的功能,我在其中提到源、目标和基于数据框列?

我需要同样地订购两个 DataFrame 吗?

df_hsa:

   hsa stateabbr    county
0  259        AL    Butler
1  177        AL   Calhoun
2  177        AL  Cleburne
3  172        AL  Chambers
4  172        AL  Randolph

df_state:

  abbr       state
0   AL     Alabama
1   AK      Alaska
2   AZ     Arizona
3   AR    Arkansas
4   CA  California

期望的输出: df_hsa 使用 state 列而不是 stateabbr

   hsa     state    county
0  259   Alabama    Butler
1  177   Alabama   Calhoun
2  177   Alabama  Cleburne
3  172   Alabama  Chambers
4  172   Alabama  Randolph

设置索引为"stateabbr"后即可加入

df_hsa.set_index("stateabbr").join(df_state.set_index("abbr"))

输出:

    hsa county  state
AL  259 Butler  Alabama
AL  177 Calhoun Alabama
AL  177 Cleburne    Alabama
AL  172 Chambers    Alabama
AL  172 Randolph    Alabama

如果您还想要原始索引,可以在行尾添加 .set_index(df_hsa.index)