pandas concat()使用
时间: 2024-12-29 14:22:55 浏览: 9
### 使用 `pandas.concat` 函数进行数据操作
在Python的数据处理过程中,`pandas.concat` 是一种用于沿指定轴连接多个DataFrame或Series对象的方法[^1]。此方法允许沿着行(axis=0,默认设置)或列(axis=1)方向组合不同的表格结构。
#### 基本语法
以下是 `pandas.concat` 的基本调用方式:
```python
import pandas as pd
result = pd.concat([df1, df2], axis=0, join='outer', ignore_index=False)
```
- 参数说明:
- `[df1, df2]`: 要连接的对象列表。
- `axis`: 连接的方向;默认为0表示按垂直堆叠(即增加新行),设为1则水平扩展(新增加列)。
- `join`: 控制索引匹配的方式;'inner'取交集,'outer'(默认)取并集。
- `ignore_index`: 如果设置为True,则忽略原始索引而创建新的整数型索引。
#### 实际应用案例
下面通过具体例子展示如何利用该功能来实现不同类型的数据拼接:
##### 沿着纵向(行)合并两个DataFrame实例
假设存在如下两份销售记录表单:
| Date | Sales |
|------------|-------|
| 2023-09-01 | 100 |
| 2023-09-02 | 150 |
以及
| Date | Sales |
|------------|-------|
| 2023-09-03 | 200 |
| 2023-09-04 | 250 |
可以这样写代码将其合二为一:
```python
sales_data_1 = pd.DataFrame({
'Date': ['2023-09-01', '2023-09-02'],
'Sales': [100, 150]
})
sales_data_2 = pd.DataFrame({
'Date': ['2023-09-03', '2023-09-04'],
'Sales': [200, 250]
})
combined_sales = pd.concat([sales_data_1, sales_data_2])
print(combined_sales)
```
这会得到一个新的包含四条记录的DataFrame。
##### 合并具有不同列名但相同长度的DataFrame
当面对拥有部分重叠字段名称却也各自具备独特属性的情况时,可以通过调整参数使它们顺利融合在一起形成更宽广的结果集:
```python
customer_info = pd.DataFrame({'CustomerID':[1,2],'Name':['Alice','Bob']})
order_details = pd.DataFrame({'OrderNo':[1001,1002],'Amount':[80,75]})
merged_df = pd.concat([customer_info.set_index('CustomerID'), order_details.set_index('OrderNo')], axis=1)
print(merged_df)
```
这里需要注意的是,在这种情况下通常需要先设定共同键作为索引来确保正确对应关系[^2]。
阅读全文