pandas合并后保留左连数据
时间: 2023-11-17 21:05:22 浏览: 119
在 pandas 中,使用 `merge()` 函数可以将两个 DataFrame 合并。如果想要保留左侧 DataFrame 的所有行,可以设置 `how='left'` 参数。
例如,假设有两个 DataFrame `df1` 和 `df2`,它们的某些列相同,可以按照这些列进行合并。下面的代码演示了如何将它们按照 'key' 列合并,并且保留 df1 中所有的行:
``` python
import pandas as pd
# 构造示例数据
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['A', 'E', 'C', 'F'],
'value': [5, 6, 7, 8]})
# 按照 'key' 列合并,并保留左侧 DataFrame 的所有行
merged = pd.merge(df1, df2, on='key', how='left')
print(merged)
```
输出结果如下:
```
key value_x value_y
0 A 1 5.0
1 B 2 NaN
2 C 3 7.0
3 D 4 NaN
```
可以看到,合并后的结果中保留了 df1 中的所有行,同时将 df2 中匹配到的行合并到了一起。注意到合并后结果中有两个 'value' 列,为了方便区分,pandas 会自动为重名的列添加后缀 `_x` 和 `_y`。我们可以根据需要对列名进行重命名。
阅读全文