2017-03-07 72 views
2

環境是如何將多個從表A A柱的B柱表B中的熊貓數據幀加入?

Python version 2.7.11 
Pandas version 0.18.1 

假設我們有以下的輸入表阿& B:

ID,FROM_YEAR,TYPE,AREA1,AREA2 
1,2015,A,100,200 
1,2015,B,100,200 

ID,FROM_YEAR,TYPE,COEFFICIENT 
1,2015,A,100,1.5 
1,2015,B,100,2.0 

理想輸出:

ID,FROM_YEAR,TYPE,AREA1,AREA2 
1,2015,A,100,**300** 
1,2015,B,100,**400** 

,其中200 * 1.5 = 300 & 200 * 2.0 = 400

MySQL查詢是:

SELECT 
a.ID, 
a.FROM_YEAR, 
a.TYPE, 
a.AREA1, 
a.AREA2*b.COEFFICIENT AS AREA2 
FROM a 
INNER JOIN b 
ON 
a.ID=b.ID, 
a.FROM_YEAR=b.FROM_YEAR, 
a.TYPE=b.TYPE 

是否有可能做到這一點在Python熊貓嗎?謝謝!

回答

1

您可以使用eval()方法:

In [11]: pd.merge(A, B, on=['ID','FROM_YEAR','TYPE']) \ 
      .eval('AREA2 = AREA2 * COEFFICIENT', inplace=False) 
Out[11]: 
    ID FROM_YEAR TYPE AREA1_x AREA2 AREA1_y COEFFICIENT 
0 1  2015 A  100 300.0  100   1.5 
1 1  2015 B  100 400.0  100   2.0 
+0

謝謝您的回答!你介意在這裏解釋一下關於eval函數嗎? – Chubaka

+0

@Chubaka,我添加了一個鏈接到大熊貓的文檔,在那裏你可以找到許多例子 - 我不認爲我可以更好地解釋它;) – MaxU

相關問題