如何用来自另一个数据帧(df2)的信息填充数据帧(df1)的一列?就在df1和df2中两列信息匹配的时候



我有一个有10k行的df1,比如:

name  time  day  details  year
xxx    1    mon   AA
yyy    2    tue   BB
zzz    3    mon   CC

我有一个有2k行的df2,比如:

time   details  year
4      AA       1900
2      BB       2000
5      CC       2030

当df1中的行的时间和细节等于df2中的行时间和细节时,我想要获取df2的年份信息并更新df1。愿望df是这样的:

name  time  day  details  year

xxx    1    mon   AA
yyy    2    tue   BB   2000
zzz    3    mon   CC

在"时间"one_answers"细节"上尝试"左"merge

import numpy as np
import pandas as pd
df1 = pd.DataFrame({
'name': ['xxx', 'yyy', 'zzz'],
'time': [1, 2, 3],
'day': ['mon', 'tue', 'mon'],
'details': ['AA', 'BB', 'CC'],
'year': [np.nan, np.nan, np.nan]
})
df2 = pd.DataFrame({
'time': [4, 2, 5],
'details': ['AA', 'BB', 'CC'],
'year': [1900, 2000, 2030]
})
merged = df1.drop(columns='year').merge(df2, on=['time', 'details'], how='left')
print(merged)

merged:

name  time  day details    year
0  xxx     1  mon      AA     NaN
1  yyy     2  tue      BB  2000.0
2  zzz     3  mon      CC     NaN

相关内容

最新更新