我有两个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.g
与df
相同的列,类型和顺序。
答案 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')