2016-04-25 1 views
0

У меня есть два dataframes, A и B, которые имеют некоторые общие имена столбцов. Как что:Как пересечь два файла в Python с помощью pandas?

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 

Мне нужно, чтобы получить новый dataframe, который будет состоять из пересечения BASD А и В на общую колонке + данных из 2 dataframe:

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

Вы можете использовать merge с drop:

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

Следующая решение создать подгруппу с колонкой Date, а затем merge его с DataFrameB:

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

отлично, спасибо! – Polly