pandas concat内连接
时间: 2024-12-27 22:25:08 浏览: 1
### 使用 Pandas `concat` 进行内连接操作
#### 示例代码
为了展示如何利用 `pandas.concat()` 实现内连接,可以构建两个简单的 DataFrame 并执行基于指定轴上的内连接。
```python
import pandas as pd
# 创建示例数据框 df1 和 df2
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=['K0', 'K1', 'K2'])
df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2'],
'D': ['D0', 'D1', 'D2']},
index=['K1', 'K2', 'K3'])
print("DataFrame 1:")
print(df1)
print("\nDataFrame 2:")
print(df2)
# 利用 concat 执行内连接,默认沿垂直方向 (axis=0),并设置 join='inner'
result = pd.concat([df1, df2], axis=1, join='inner')
print("\nInner Join Result using concat:")
print(result)
```
这段代码创建了两个具有部分相同索引的数据帧,并通过调用 `pd.concat()` 来实现它们之间的内连接。这里的关键参数是 `join='inner'`,这会使得只有当两者的索引都存在时才会保留对应的行[^2]。
#### 语法解释
- **objs**: 需要被合并的对象列表,通常是一系列的 DataFrame 或者 Series。
- **axis**: 合并的方向;默认为 0 表示沿着纵轴(即按照行)堆叠;如果设为 1,则表示横向扩展(按照列)。对于内连接而言,在大多数情况下会选择 `axis=1` 方向来确保共同键的存在。
- **join='inner'**: 此选项指定了只保留那些在所有输入对象中共有的索引标签。这意味着最终的结果集只会包含原始表中存在的交集部分。
阅读全文