根据列的特定值合并数据框

时间:2019-03-20 21:53:01

标签: python pandas

我知道这可能超级简单,但是我是数据框操作的新手。我总共有 17 个数据帧,我需要将它们合并为一个。例如:

DF1:

| id    | val_1    |
|-------|----------|
| A     |        0 |
| B     |        2 |
| C     |        1 |

DF2:

| id    | val_2    |
|-------|----------|
| A     |        5 |
| D     |        2 |

期望结果应该是:

| id    | val_1    | val_2    |
|-------|----------|----------|
| A     |        0 |        5 |
| B     |        2 |      N/A |
| C     |        1 |      N/A |
| D     |      N/A |        2 |

mergeconcate应该使用什么正确的方法? 谢谢!

1 个答案:

答案 0 :(得分:0)

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.array([
    ['A', 0],
    ['B', 2],
    ['C', 1]]),
    columns=['id', 'val1'])
df2 = pd.DataFrame(np.array([
    ['A', 5],
    ['D', 2]]),
    columns=['id', 'val2'])

print(pd.merge(df1, df2, on='id', how='outer'))

应提供所需的输出:

  id val1 val2
0  A    0    5
1  B    2  NaN
2  C    1  NaN
3  D  NaN    2