我在python中有替换问题。我试图用ORIGIN_AIRPORT
的{{1}}列替换df_2
的{{1}}列中的所有整数值。键列是IATA
的{{1}} T和df_1
的{{1}}。
ORIGIN_AIRPOR
约有df_2
个数据集,约ID
有df_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
.
.
.
答案 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_1
和df_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_AIRPORT
在x
中,则最后一个函数将mapping
的值替换为映射的值。