【发布时间】:2023-01-15 02:06:34
【问题描述】:
与其他问题不同,我不想用新值创建一个新列,我想使用同一列,只是将旧值更改为新值(如果存在)。
对于一个新专栏,我会有:
import pandas as pd
df1 = pd.DataFrame(data = {'Name' : ['Carl','Steave','Julius','Marcus'],
'Work' : ['Home','Street','Car','Airplane'],
'Year' : ['2022','2021','2020','2019'],
'Days' : ['',5,'','']})
df2 = pd.DataFrame(data = {'Name' : ['Carl','Julius'],
'Work' : ['Home','Car'],
'Days' : [1,2]})
df_merge = pd.merge(df1, df2, how='left', on=['Name','Work'], suffixes=('','_'))
print(df_merge)
Name Work Year Days Days_
0 Carl Home 2022 1.0
1 Steave Street 2021 5 NaN
2 Julius Car 2020 2.0
3 Marcus Airplane 2019 NaN
但我真正想要的是这样的:
Name Work Year Days
0 Carl Home 2022 1
1 Steave Street 2021 5
2 Julius Car 2020 2
3 Marcus Airplane 2019
建立这样一个联合的正确方法是什么?
【问题讨论】:
-
关于合并日期时优先考虑的任何说明?例如,如果我们在 df1 中有
'Days' : [1,5,'','']而不是?