![](/img/trans.png)
[英]Update a dataframe(df1) column with value from another dataframe(df2) column when a key column in df1 matches to multiple columns in 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.