![](/img/trans.png)
[英]Pandas compare two columns from two dataframes if there is a match get value from third column convert to week number
[英]Pandas compare two columns of different dataframes and copy value of a third column if there is a match
我有兩個不同的數據框,它們是從不同的.xlsx文檔中導出的
df1 包含標題:聯系人姓名、請求 ID、聯系人電子郵件。
df2 包含標頭:請求 ID 和我需要的其他一些標頭。
我想檢查 df2['Request ID'] 的值是否與每個 df1 ['Request ID] 列匹配,並將該匹配項的 df1['Contact E-mail'] 值復制到 df2 中的新列.
我嘗試了很多事情但沒有成功,我嘗試的最后一件事是:
if df1.loc['Request ID'] == df2.loc['Request ID']:
df2['Email'] = df1['Contact Email']
else:
df2['Email'] = ""
但是我收到錯誤:
KeyError:“ [Int64Index(
[2014164503、2014151100、2014149017、2014162644、2014164489、
2014120882、2014159262、2013993561、2014162450、2014151098、
2014150239、2014162949、2014151485、2014162448、2014163094、
2014162592、2014158897、2014151097、2014164495、2014159459、
2014036452、2014164484、2014154555、2014154556、2014146835、
2014149163、2014158899、2014153930、2014163579、2014036453、
2014142169、2014145026、2014151724、2014155704、2014152046、
2014036447、2014164490、2014163503、2014160983、2014105630、
2014163612, 2014146834, 2014027641, 2014164454],
dtype='int64')] 在 [index]"
您要實現的目標聽起來像是典型的sql join
操作。 這可以翻譯成Pandas
如下所示:
df1 = df1.rename(columns={"Contact Email": "Email"})
res = df1.merge(df2, on=["Request ID"], how="right")
如果您分享您的輸入和預期輸出的示例,我會很棒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.