将数据框中的值替换为另一个数据框中的值

时间:2020-04-12 17:14:07

标签: python-3.x dataframe

我在python中有替换问题。我试图用ORIGIN_AIRPORT的{​​{1}}列替换df_2的{​​{1}}列中的所有整数值。键列是IATA的{​​{1}} T和df_1的{​​{1}}。

ORIGIN_AIRPOR约有df_2个数据集,约IDdf_1个。

我认为有一个简单的方法可以做到,但是我不知道如何做。

df_2

5.800.000

df_1

6.400

最后,df应该看起来像df_3。

df_1

    ID      IATA
0   10001   01A
1   10003   03A
2   10004   04A
3   10005   05A
4   10006   06A
.
.
.

2 个答案:

答案 0 :(得分:2)

我将为此编写最简单的解决方案:

步骤1:使用以下代码将df_1的两列转换为字典:

d = dict(zip(df_1.ID,df_1.IATA))

步骤2:现在,我们只需要映射此字典和df_2:

df_2.ORIGIN_AIRPORT= df_1.ID.map(d)

答案 1 :(得分:0)

您可以进行df_1df_2的左连接。

鉴于df1的大小适中,您可以创建一个映射规则:

mapping = {}
for row in df_1.iterrows():
    mapping[row[0]] = row[1]

并创建一个新列:

df2['AIRPORT_PROCESSED'] = df2['ORIGIN_AIRPORT'].apply(lambda x: mapping.get(x, x))

如果ORIGIN_AIRPORTx中,则最后一个函数将mapping的值替换为映射的值。