如何使用 pandas 将 Python 中的两个文件相交?

How to intersect two files in Python using pandas?

我有两个数据框 A 和 B,它们有一些共同的列名。像那样:

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 基于它们的公共列的交集 + 来自第二个数据框的数据:

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']) 

您可以使用 merge with 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 使用 DataFrame B:

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