熊猫.Mergins的复制品



我有两个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

最新更新