繁体   English   中英

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

[英]How to fill a column of a dataframe (df1) with info from another dataframe (df2)? Just when two column info matches in df1 and df2?

我有一个 df1 有 10k 行,例如:

name  time  day  details  year

xxx    1    mon   AA

yyy    2    tue   BB

zzz    3    mon   CC

我有一个 df2 有 2k 行,例如:

  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

在“时间”和“细节”上尝试“左” 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM