有三个 DataFrame:
1.
| 一个 | 乙 | 碳 |
|---|---|---|
| 1 | 11a | 4 |
| 2 | 11a | 没有任何 |
| 3 | 11b | 6 |
2.
| 一个 | 乙 | 德 | 碳 |
|---|---|---|---|
| 2 | 11a | 12 | 四十二 |
3.
| 一个 | 乙 | 埃 |
|---|---|---|
| 1 | 11a | 四十五 |
| 2 | 11a | 67 |
| 3 | 11b | 23 |
我想以A列为基准进行合并,保证A列的值相同的话,其他列的值要么相同,要么为NaN。
期望结果:
| 一个 | 乙 | 碳 | 德 | 埃 |
|---|---|---|---|---|
| 1 | 11a | 4 | 钠 | 四十五 |
| 2 | 11a | 四十二 | 12 | 67 |
| 3 | 11b | 6 | 钠 | 23 |
到目前为止我只能这样做:
import pandas as pd
df1 = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['11a', '11a', '11b'], 'C': [4, None, 6]})
df2 = pd.DataFrame({'A': ['2'], 'B': ['11a'], 'D': [12], 'C': [42]})
df3 = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['11a', '11a', '11b'], 'E': [45, 67, 23]})
df1 = pd.merge(df1, df2, on='A', how='outer')
df1 = pd.merge(df1, df3, on='A', how='outer')
但结果却远不理想:
| 一个 | 乙 | 韋斯特 | 德 | 韋斯特 | 埃 |
|---|---|---|---|---|---|
| 1 | 11a | 4.0 | 钠 | 钠 | 四十五 |
| 2 | 11a | 钠 | 12.0 | 42.0 | 67 |
| 3 | 11b | 6.0 | 钠 | 钠 | 23 |
请告诉我该怎么办?