合并两个datafame,不一样的地方留空值
时间: 2024-01-08 13:02:18 浏览: 93
可以使用 pandas 的 merge 函数来将两个 DataFrame 进行合并,同时保留不同的部分。具体操作如下:
假设有两个 DataFrame,df1 和 df2,它们的列名和数据类型不完全一致,我们希望将它们合并在一起,不同的地方留空值。
```
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c'], 'C': [True, False, True]})
df2 = pd.DataFrame({'A': [1, 3, 4], 'D': ['x', 'y', 'z'], 'E': [3.14, 2.71, 1.62]})
```
首先,我们可以使用 merge 函数将两个 DataFrame 进行合并。具体来说,我们需要指定 on 参数为两个 DataFrame 共有的列名,这样 merge 函数就会按照这个列名对两个 DataFrame 进行合并。同时,我们还需要指定 how 参数为 'outer',表示采用外连接的方式合并两个 DataFrame。这样,两个 DataFrame 中所有的行都会被保留,不同的地方留空值。
```
df = pd.merge(df1, df2, on='A', how='outer')
print(df)
```
输出结果为:
```
A B C D E
0 1 a True x 3.14
1 2 b False NaN NaN
2 3 c True y 2.71
3 4 NaN NaN z 1.62
```
可以看到,两个 DataFrame 中的所有行都被保留了下来,不同的地方留空值。同时,由于 df1 中没有 D 和 E 两列,因此在合并后的 DataFrame 中,这两列的值都是 NaN。同理,由于 df2 中没有 B 和 C 两列,因此在合并后的 DataFrame 中,这两列的值也都是 NaN。
阅读全文