合并两个dataFrame并在之后删除一个

时间:2016-12-28 21:25:57

标签: python pandas

我有两个DataFrame df_1 df_2,他们有共同的colmms,例如'Name''Name'列下面的名称可能会有所不同,因此我将它们合并到df框架中,并从这两个列中创建了新的几列。

是否可以删除df_2并保留所有新创建的列和df_1?没有一步?一条线 ?或df_1列的列数与df

相同
df_1 Name Age Sex Jop RoomID 

df_1 Name Age Sex Jop address RoomID

df  Name Age Sex Jop address Fmaily_size  Floor_NR e.g

df_1看起来像这样Name Age Sex Jop address Fmaily_size Floor_NR e.gdf相同的列,类型和顺序。

2 个答案:

答案 0 :(得分:0)

IIUC:

df_1.merge(
    df_2, on='Name', how='outer',
    suffixes=['', '_']
).reindex_axis(df_1.columns.tolist(), 1)

答案 1 :(得分:0)

考虑left加入合并,以保留一个数据帧(即 df_1 )中与其他数据帧匹配与否的所有记录(即 df_2 ) 。不匹配的记录将导致合并列的NaN。否则使用默认的inner来保持两个帧中的匹配记录。

根据您的评论 - 其中xtest =相同的列,但来自df_1 的数据 - 在结果数据框下方, xtest 是两个框架中的所有列仅保留< em> df_1 记录:

xtest = pd.merge(df_1, df_2, on='Name', how='left')
# OR xtest = df_1.merge(df_2, on='Name', how='left')