如何将数据帧附加到具有重复 ID 的数据帧 [重复]

Posted

技术标签:

【中文标题】如何将数据帧附加到具有重复 ID 的数据帧 [重复]【英文标题】:how append dataframe to dataframe with duplicate id [duplicate] 【发布时间】:2021-04-22 18:02:52 【问题描述】:

我有一个数据框 df1

 id  Name  City   type 
 1   Anna  Paris   AB
 2   Marc   Rome   D
 3   erika  madrid AC

和一个数据框 df2

 id  Name  City   type 
 1   Anna  Paris   B

和一个数据框 df3

 id  Name  City   type 
 1   Anna  Paris   C

我想将 df2 和 df3 附加到 df1 ,这是我的预期输出:

 id  Name  City   type 
 1   Anna  Paris   AB
 2   Marc   Rome   D
 3   erika  madrid AC
 1   Anna  Paris   B
 1   Anna  Paris   C

df1  = df1.append(df2)
df1  = df1.append(df3)

但数据框只添加最后一行并删除具有相同 id 的其他行

 id  Name  City   type 
 2   Marc   Rome   D
 3   erika  madrid AC
 1   Anna  Paris   C  

我也在尝试连接

df1= pd.concat([df1,df2,df3], join='inner')

【问题讨论】:

所以你需要df1= pd.concat([df1,df2,df3]) ? 您能发布您的预期输出吗? 【参考方案1】:

我认为pd.concat() 的问题在于您正在传递参数join = inner。我希望这会起作用:

output = pd.concat([df1,df2,df3])

使用这个示例代码:

df1 = pd.DataFrame('Name':['Anna','Marc','erika'],
                    'City':['Paris','Rome','madrid'],
                    'Type':['AB','D','AC'])
df2 = pd.DataFrame('Name':['Anna'],
                    'City':['Paris'],
                    'Type':['B'])
df3 = pd.DataFrame('Name':['Anna'],
                    'City':['Paris'],
                    'Type':['C'])
pd.concat([df1,df2,df3])

它输出:

    Name    City Type
0   Anna   Paris   AB
1   Marc    Rome    D
2  erika  madrid   AC
0   Anna   Paris    B
0   Anna   Paris    C

【讨论】:

相同的输出,它只保留最后一行具有相同的id,奇怪!

以上是关于如何将数据帧附加到具有重复 ID 的数据帧 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在另一个单独的数据帧中使用一个数据帧中的 id 抓取数据,该数据帧不具有相同的列名并将字符串附加到一个值

spark:如何在数据帧上进行 dropDuplicates,同时保持最高时间戳行 [重复]

如何将数据帧中的数据调用到Haversine函数中[重复]

在具有不同列名的pandas中连接2个数据帧[重复]

将集合操作从 R 的数据帧移植到数据表:如何识别重复行?

spark:合并两个数据帧,如果两个数据帧中的ID重复,则df1中的行覆盖df2中的行