python pandas concat
时间: 2024-09-25 11:17:09 浏览: 73
`pandas`库中的`concat()`函数用于连接(即拼接)两个或更多的DataFrame对象,创建一个新的DataFrame。它有多种用途,包括水平(列)拼接和垂直(行)拼接。
1. **参数详解**[^1]:
- `pd.concat([df1, df2], keys=['one_data', 'two_data'])`: 当`keys`参数存在时,这表示对每个DataFrame应用不同的标签,通常在数据来自不同源或具有层次结构时使用。例如,这里的`['one_data', 'two_data']`标识第一个DataFrame属于"one_data"组,第二个属于"two_data"组。
- `axis=1`: 如果设置为1,会进行水平拼接,也就是合并列。在这个示例中未指定,所以默认是垂直拼接,即沿行方向添加数据。
2. **简单拼接示例**:
```python
df1 = pd.DataFrame({'key': ['a', 'b'], 'data': [1, 2]})
df2 = pd.DataFrame({'key': ['c', 'd'], 'data': [3, 4]})
df3 = pd.DataFrame({'key': ['e', 'f', 'g'], 'data': [5, 6, 7]})
# 默认垂直拼接(沿行)
result = pd.concat([df1, df2, df3])
# 结果:键'key'和'data'会被重复,索引从0开始
# 水平拼接(沿列),如果需要
result_h = pd.concat([df1, df2, df3], axis=1)
# 结果:每个DataFrame作为一个新的列添加
# 使用keys标记数据源并忽略原始索引
result_ignore = pd.concat([df1, df2], keys=['one_data', 'two_data'], ignore_index=True)
# 结果:新的索引从0开始,'one_data'和'two_data'对应两组数据
```
阅读全文