合并两个DataFrame的列,但不包含重复行

2024-10-03 04:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我想根据column的匹配值合并两个数据帧。当我这样做时,它会导致重复的行。你知道吗

我的数据帧看起来像:

df1:
  e_name   p1   p2  p3    
  e01      10   12  15
  e02      12   18  25
  e03      16   14  09

 df2:
  e_name   mean       
  e01      09 
  e02      11
  e03      15

预期产量:

 out1:
      e_name   p1   p2  p3   mean 
     e01      10   12  15   09  
     e02      12   18  25   11
     e03      16   14  09   15

我的代码:

  #Solution 1:
  out1 = pd.merge(df1, df2, how='inner', on='e_name')

   #Solution 2:
   out2 = summary_stats.merge(df1, df2, left_on='e_name', right_on='e_name')

两种解决方案都返回重复的行:

 e_name   p1   p2  p3   mean 
 e01      10   12  15   09
 e01      10   12  15   09  
 e02      12   18  25   11
 e02      12   18  25   11
 e03      16   14  09   15
 e03      16   14  09   15

如何获得没有重复行的解决方案?你知道吗


Tags: 数据nameonmergemeandf1df2solution
1条回答
网友
1楼 · 发布于 2024-10-03 04:30:27

我认为您需要按每列e_name删除第二个数据帧中的重复项^{}

out1 = pd.merge(df1, df2.drop_duplicates('e_name'), on='e_name')

或两者兼而有之:

out1 = pd.merge(df1.drop_duplicates('e_name'), df2.drop_duplicates('e_name'), on='e_name')

相关问题 更多 >