Merging/Concat/Joining 两个数据帧

Merging/Concat/Joining two dataframes

我有一个 pandas 数据框,其代码标识符如下所述:

df1 = pd.DataFrame([['a', 1], ['b', 2],['c', 3],['d', 4],['e', 5],['f', 5]],
                   columns=['code', 'value1'])

第二个数据帧具有以下内容

df2 = pd.DataFrame([['a', 11], ['b', 12],['c', 13],['d', 14],['e', 15],['f', 16],['g', 17], ['h', 2],['i', 3],['j', 4],['k', 5],['l', 5]],
                   columns=['code', 'value2'])

我只想查看 df1 中标识的代码(即 a-f),并且第三列名为 value2。

我试过了

df1 = df1.join(df2, on = 'Code')

但我一直得到 NaN 的值

我查看了几个地方并看到了合并、连接和连接,但其中 none 似乎有效

使用:

>>> df1.merge(df2, how='inner', on='code')
    code    value1  value2
0   a   1   11
1   b   2   12
2   c   3   13
3   d   4   14
4   e   5   15
5   f   5   16

或者您的意思是 how='outer'merge

>>> df1.merge(df2, how='outer', on='code')
   code  value1  value2
0     a     1.0      11
1     b     2.0      12
2     c     3.0      13
3     d     4.0      14
4     e     5.0      15
5     f     5.0      16
6     g     NaN      17
7     h     NaN       2
8     i     NaN       3
9     j     NaN       4
10    k     NaN       5
11    l     NaN       5
>>> 

要仅查看 df1 中标识的代码(即 a-f)并拥有名为 value2 的第三列,您应该使用 merge 方法以及 how='inner'on='code :

>>> df1.merge(df2, how='inner', on='code')
    code    value1  value2
0   a   1   11
1   b   2   12
2   c   3   13
3   d   4   14
4   e   5   15
5   f   5   16

试试这个:

df1 = df1.merge(df2, on = 'code')

因为您将列命名为 'code' 而不是 'Code'