繁体   English   中英

合并多列上的数据框

[英]Merge dataframes on multiple columns

有两个表,如: first_namelast_namedate 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM