【问题标题】:how append dataframe to dataframe with duplicate id [duplicate]如何将数据帧附加到具有重复 ID 的数据帧 [重复]
【发布时间】: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]) ?
  • 您能发布您的预期输出吗?

标签: python pandas append concatenation


【解决方案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,奇怪!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 2020-03-28
  • 2021-09-19
  • 2021-12-12
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
相关资源
最近更新 更多