如何连接两个具有不同行项目的数据框

时间:2019-11-28 07:33:21

标签: python pandas

我有两个数据框

df1
SR   NAME   ROLL
1    kk      123
2    mm      456
3    pp      789
4    hh      891

df2

ID    Marks
143     45
123     65

我想结合起来使输出看起来像

df3
SR   NAME   ROLL   Id     marks
1    kk      123   143    45
2    mm      456   123    65

输出行应与第二个数据帧相同 假设上面的df1有4行,df2有2行 输出df3应该只有2个(注意:两者中没有共同的列)

3 个答案:

答案 0 :(得分:1)

您可以使用pandas concat连接两个数据框,并删除所有包含NA的行

dat1 = pd.DataFrame({'NAME': ['kk','mm','pp','hh'],'ROLE':[123,456,789,891]})
dat2 = pd.DataFrame({'ID': [123,143],'MARKS':[45,65]})
df3 = pd.concat([dat1, dat2], axis=1).dropna(how='any')
df3

    NAME    ROLE    ID      MARKS
0   kk      123     123.0   45.0
1   mm      456     143.0   65.0

答案 1 :(得分:0)

此:

df3 = pd.merge(df1,df2, left_on=df1.index, right_on=df2.index).drop('key_0',axis=1)

出站:

   SR NAME  ROLL   ID  Marks
0   1   kk   123  143     45
1   2   mm   456  123     65

答案 2 :(得分:0)

import pandas as pd
pd.concat([df1,df2],axis=1).dropna()

输出将是:

SR   NAME   ROLL   Id     marks
1    kk      123   143    45
2    mm      456   123    65