如何连接两个数据帧,其中一列具有相同大小的相同值(和名称)?

2024-10-02 08:19:06 发布

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

我只想连接两个数据帧,其中一列具有相同的值

我尝试了以下合并功能:

df1--&燃气轮机;数据帧1 data Frame 1

    AU01    subject 
1   0.45      3
2   0.21      3
3   1.45      3
4   0.78      3  

df2--&燃气轮机;数据帧2 Data Frame 2

      AU02     subject 
1     0.44       3
2     0.34       3
3     1.56       3
4     0.78       3  

我的尝试:

data = pd.merge(df1, df2, how="inner" , on="subject")

得到如下结果:

merge result:

但我只想通过合并公共列并保持其他列不变来合并这两个数据帧

我的预期输出是:

    AU01   AU02   subject 
1   0.45   0.44     3
2   0.21   0.34     3
3   1.45   1.56     3
4   0.78   0.78     3   

PS:这里还有其他问题要问,但没有问题帮我解决


Tags: 数据功能datamergeframehowpdsubject
2条回答

您可以这样做:

  • 检查df1的subject是否与所有行的df2subject匹配。
  • 如果是,则^{}同时df1df2index
  • 删除重复的subject

代码:

In [800]: if df1.subject.isin(df2.subject).all(): 
     ...:     df = pd.merge(df1,df2,left_index=True, right_index=True).drop('subject_y', 1).rename(columns={'subject_x':'subject'}) 
     ...:

In [801]: df                                                                                                                                                                                                
Out[801]: 
   AU01  subject  AU02
1  0.45        3  0.44
2  0.21        3  0.34
3  1.45        3  1.56
4  0.78        3  0.78

假设“主题”信息是冗余的 您可以尝试:

df1.combine_first(df2)

   AU01  AU02  subject
1  0.45  0.44        3
2  0.21  0.34        3
3  1.45  1.56        3
4  0.78  0.78        3

相关问题 更多 >

    热门问题