使用另一个DataFrame列中的值更新特定的Pandas DataFrame列(相当于使用JOIN的SQL Updat



我有两个Pandas数据帧:

第一:

时间戳 标签另一列1
2022-01-01 00:00 A 0
2022-01-01 00:00 0
2022-01-01 00:15 0
2022-01-01 00:30 0
2022-01-01 00:45 0
2022-01-01 01:00 0
2022-01-01 01:00 0
2022-01-01 01:15 0

首先,让我们根据'Timestamp','Label'合并这两个表。df2['Value']值​​在匹配第一个df的行中,它们将不是nan,否则它们都将是na

使用np.where后:如果df2中的df2['Value']值不是nan,则取该值,如果nan,那么保留df1中的df1['Value']

final=df.merge(df2,on=['Timestamp','Label'],how='left')
final['Value_x']=np.where(final['Value_y'].notnull(),final['Value_y'],final['Value_x'])
final=final.rename(columns={'Value_x':'Value'})
final=final[df.columns]
print(final)
'''
Timestamp           Label   Value   Another col 1   another col 2
0   2022-01-01 00:00:00 A       20      ...             ...
1   2022-01-01 00:00:00 B       0       ...             ...
2   2022-01-01 00:15:00 B       0       ...             ...
3   2022-01-01 00:30:00 B       0       ...             ...
4   2022-01-01 00:45:00 B       0       ...             ...
5   2022-01-01 01:00:00 C       20      ...             ...
6   2022-01-01 01:00:00 D       0       ...             ...
7   2022-01-01 01:15:00 D       0       ...             ...
'''

最新更新