[英]Merge dataframes on multiple columns
有两个表,如: first_name
, last_name
, date of birth
ofbirth ,...
我想创建一个新表,其中仅列出两个表中都存在的人员。
如果我尝试通过循环“isin”方法进行查找,我可以为一列查找匹配项,但我想同时匹配两列。
如果您有以下数据框,请扩展评论中提到的答案(@Scott Boston):
df1 = pd.DataFrame(np.array([['Jack', 'Brown', '1980-01-01'], ['Joe', 'Doe', '1990-02-02']
, ['John', 'Jones', '2000-03-03']])
, columns=['first_name', 'last_name', 'birth_date'])
df1 将是:
first_name last_name birth_date
Jack Brown 1980-01-01
Joe Doe 1990-02-02
John Jones 2000-03-03
df2 = pd.DataFrame(np.array([['Jack', 'Brown', '2020-01-29'], ['Joe', 'Smith', '1999-09-09']
, ['Sarah', 'Morphy', '2011-11-11']])
, columns=['first_name', 'last_name', 'birth_date'])
df2 将是:
first_name last_name birth_date
Jack Brown 2010-10-10
Joe Smith 1999-09-09
Sarah Morphy 2011-11-11
result = pd.merge(df1, df2, how="inner", on=["first_name", "last_name"])
你的结果是这样的:
first_name last_name birth_date_x birth_date_y
Jack Brown 1980-01-01 2010-10-10
您也可以通过添加suffixes=["_df1", "_df2"]
来更改_x
和_y
后缀
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.