pandas.concat
是一个用于沿指定轴连接多个 DataFrame
或 Series
对象的函数。它是 pandas 库中用于合并数据的强大工具,可以处理不同的合并场景,如垂直(按行)或水平(按列)连接,以及处理索引和层次索引。
基本语法
pandas.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
参数说明
objs
: 要连接的Series
或DataFrame
对象的序列或映射。axis
: 连接的轴,0 表示按行连接,1 表示按列连接。join
: 连接的方式,'inner' 表示内连接,'outer' 表示外连接。ignore_index
: 如果为True
,则不使用连接轴上的索引值,结果轴将被重新索引。keys
: 用于构建层次索引的序列或元组。levels
和names
: 用于构建和命名层次索引的参数。verify_integrity
: 检查新轴是否包含重复值。sort
: 按字典顺序对非连接轴进行排序。copy
: 如果为False
,则尝试避免不必要的数据复制。
使用场景
- 垂直连接多个
DataFrame
或Series
对象。 - 水平连接多个
DataFrame
对象,将它们的列合并。 - 合并时添加层次索引,以区分不同数据集的来源。
- 合并时忽略索引,重新创建索引。
示例
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'C': [7, 8]})
# 垂直连接(按行)
result_vertical = pd.concat([df1, df2], axis=0)
# 水平连接(按列)
result_horizontal = pd.concat([df1, df2], axis=1)
# 合并时添加层次索引
result_with_keys = pd.concat([df1, df2], keys=['df1', 'df2'])
注意事项
- 确保连接的数据结构一致,特别是列名和数据类型。
- 使用
ignore_index
或keys
参数来处理索引,以确保结果的可读性和可操作性。 - 在性能敏感的应用中,可以通过设置
copy=False
来优化性能。
以上信息基于最新的搜索结果和 pandas 的官方文档。