pd.DataFrame.join
时间: 2024-11-20 07:29:05 浏览: 5
pd.concat函数.pptx
`pd.DataFrame.join()` 是 Pandas 库中用于合并两个 DataFrame 的函数。它通常用于基于共享的键(index 或 columns)将数据从一个 DataFrame 添加到另一个 DataFrame 中。这种操作可以创建一个新的 DataFrame,新 DataFrame 包含源 DataFrame 的所有行和目标 DataFrame 的所有列,或者是仅包含匹配的行和列。
join 函数有多种变体,包括:
- `inner_join`(默认):只保留两个 DataFrame 中都有的键值对,即交集部分。
- `left_join`:保留左 DataFrame 的所有行,并加入右 DataFrame 相关的键值对,如果右 DF 没有对应键,则用 NaN 填充。
- `right_join`:同理,但保留右 DataFrame 的所有行。
- `outer_join` 或 `full_join`:保留两个 DataFrame 的所有行,对于不存在的键,用 NaN 填充。
- `how` 参数可以进一步定制合并类型,如 `'exact'` (等于匹配) 或 `'suffixed_'` (添加后缀区分键名) 等。
例如:
```python
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value2': [5, 6, 7, 8]})
merged = df1.join(df2, on='key') # 默认内连接
# 输出结果可能类似:
# key value1 value2
# 0 A 1.0 NaN
# 1 B 2.0 5.0
# 2 C 3.0 NaN
# 3 D 4.0 6.0
```
**相关问题--:**
1. `pd.DataFrame.join()`支持哪些类型的键?
2. 当键列存在重复值时,`join`如何处理?
3. 如何利用`join`在保持原数据完整性的前提下,新增一列计算两表的关联字段?
阅读全文