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

Gir*_*iri 5 python dataframe pandas

我只想加入两个数据帧,其中一列具有相同的值。

我试过熊猫合并功能为:

df1。--> 数据帧 1 数据帧 1

    AU01    subject 
1   0.45      3
2   0.21      3
3   1.45      3
4   0.78      3  
Run Code Online (Sandbox Code Playgroud)

df2。--> 数据框 2 数据框 2

      AU02     subject 
1     0.44       3
2     0.34       3
3     1.56       3
4     0.78       3  
Run Code Online (Sandbox Code Playgroud)

我试过的:

data = pd.merge(df1, df2, how="inner" , on="subject")
Run Code Online (Sandbox Code Playgroud)

得到这样的结果:

合并结果:

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

我的预期输出是:

    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   
Run Code Online (Sandbox Code Playgroud)

PS:这里还有其他问题,但没有问题可以帮助我。

May*_*wal 1

你可以这样做:

  • 检查subjectdf1是否subjectdf2 所有行匹配。
  • 如果是这样,mergedf1df2index
  • 删除重复的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
Run Code Online (Sandbox Code Playgroud)