2017-03-16 83 views
5

的列的新列,因此我有這兩個DF的:
DF答:熊貓據幀創建基於其他dataframes

ID TYPE 
1 A 
2 B 
3 C 
4 A 
5 C 

DF B:

TYPE MEASURE 
A  0.3 
B  0.4 
C  0.5 

我想怎麼辦是基於df B關於TYPE的對應關係向df A添加第三列:

ID TYPE MEASURE 
1 A  0.3 
2 B  0.4 
3 C  0.5 
4 A  0.3 
5 C  0.5 

我試過這個代碼:

def operation (row): 

RESULT=B.loc[titlevar['TYPE'] == row['TYPE'] ][['MEASURE']].values 
return RESULT 

A['MEASURE'] = A.apply (lambda row: operation (row),axis=1) 

但是我想我犯了更多的錯誤。希望有人能幫助我。提前致謝。

回答

3

您可以使用相關地圖

dfA['MEASURE'] = dfA['TYPE'].map(dfB.set_index('TYPE')['MEASURE']) 

DFA:

ID TYPE MEASURE 
0 1 A  0.3 
1 2 B  0.4 
2 3 C  0.5 
3 4 A  0.3 
4 5 C  0.5 
+0

出於某種原因,我這樣做的時候,我只在DFA – Gunnar

+0

獲得的NAS列你檢查所有的變量的拼寫?它們都是您提供的示例中的CAP,可能是數據框中的標題大小或小。我仔細檢查,這段代碼的工作原理如此要求 – Vaishali

+0

它的工作!出於某種原因,我的dfB中有一個額外的空間。非常感謝! – Gunnar