我有两个DF。
df1类似于:
pins date transaction
UANS12 01.02.03 560
UANS12 03.04.03 976
UJJJS9 03.02.04 876
df2类似于:
pins registration_ date
UANS12 01.02.03
UJJJS9 09.01.01
我需要将df1中的引脚与df2中的注册日期进行比较。并在df1中添加一个带有regdate的新列。我尝试使用:
new = pd.merge(df1, df2[["registration_date"]], on="pins", how="right")
但出现错误:
# Check for duplicates
KeyError: 'pins'
应为how='left'
上的merge()
df1 = df1.merge(df2, on='pins', how='left')
###
pins date transaction registration_date
0 UANS12 01.02.03 560 01.02.03
1 UANS12 03.04.03 976 01.02.03
2 UJJJS9 03.02.04 876 09.01.01
或通过join()
df1['registration_date'] = df1.set_index('pins').join(df2.set_index('pins'), on='pins', how='left')['registration_date'].values
###
pins date transaction registration_date
0 UANS12 01.02.03 560 01.02.03
1 UANS12 03.04.03 976 01.02.03
2 UJJJS9 03.02.04 876 09.01.01
或通过map()
df1['registration_date'] = df1['pins'].map(dict(zip(df2['pins'], df2['registration_date'])))
df1
###
pins date transaction registration_date
0 UANS12 01.02.03 560 01.02.03
1 UANS12 03.04.03 976 01.02.03
2 UJJJS9 03.02.04 876 09.01.01
hi您正试图将df1与不包含"pin"列的数据帧合并当您使用df2[["registration_date"]]时,您需要创建一个具有单列的数据帧,而不是使用df2