[英]pandas how to get values from df2 for df1 while df1 and df2 have values overlapped on column(s)
我有兩個df
, df1
看起來像,
df1
id
1
2
3
4
5
df2
doc_no c_id
2 22
3 33
4 44
6 66
7 77
df1
中的id
值與df2
中doc_no
的某些值重疊; 我想從df2
獲取c_id
的df1
以獲得重疊的doc_no
,所以結果看起來像,
df1
id c_id
1 NaN
2 22
3 33
4 44
5 NaN
除了在id
和doc_no
上使用df1
lefts join df2
之外,我想知道是否還有其他更好的方法可以做到這一點,更簡潔有效。
您可以使用df1.merge(df2)
(這基本上是一個左/右/內連接更多描述)。 無論如何,由於左連接,您的程序是否有任何性能問題? 這應該很快完成。
問候!
使用.map()
>>> df2 = pd.DataFrame({'doc_no':[2,3,4,6,7], 'c_id':[22,33,44,66,77]})
>>> df1 = pd.DataFrame({'id':[1,2,3,4,5]})
>>> df1
id
0 1
1 2
2 3
3 4
4 5
>>> df2
doc_no c_id
0 2 22
1 3 33
2 4 44
3 6 66
4 7 77
>>> df2_dict = dict(zip(df2['doc_no'], df2['c_id']))
>>> df1['c_id'] = df1['id'].map(df2_dict)
>>> df1
id c_id
0 1 NaN
1 2 22.0
2 3 33.0
3 4 44.0
4 5 NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.