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