2016-04-25 68 views
0

我有兩個數據框,A和B,有一些共同的列名稱。這樣的:如何使用熊貓在Python中交叉兩個文件?

A       B 
Date Birth    Date Place City 
156 0    642 M  K 
521 1    765 O  L 
765 1    111 S  K 
832 0    521 M  S 

我需要一個新的數據幀,將他們共同的列+數據從第二數據幀由A和B BASD的交集:

Date Place City 
765 O  L 
521 M  S 

有沒有更快的方法比我試圖做的事情迭代項目,「?

f='' 
for i in A['Date'].iteritems(): 
    for j in B['Date'].iteritems(): 
     if i==j: 
      f.to_csv([j]+B['Place']+['City']) 
+1

您最有可能使用' DataFrame.merge'功能。查看[docs](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html) – vmg

回答

2

您可以使用mergedrop

print pd.merge(A,B, on=['Date']).drop('Birth', axis=1) 
    Date Place City 
0 521  M S 
1 765  O L 

下一個解決方案創建子集Date列,然後mergeDataFrameB

print pd.merge(A[['Date']],B, on=['Date']) 
    Date Place City 
0 521  M S 
1 765  O L 
+0

太棒了,謝謝! – Polly