pandas.concat
是 pandas 库中的一个函数,用于将多个 DataFrame 或 Series 对象沿着一条轴进行拼接。这个函数在处理数据分析和数据清洗任务时非常有用,尤其是在需要合并多个数据集时。
pandas.concat
的基本语法如下:
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
objs
: 要拼接的对象列表或字典。axis
: 指定拼接的轴,0 表示纵向(默认),1 表示横向。join
: 连接方式,'outer' 表示外连接(默认),'inner' 表示内连接。ignore_index
: 是否忽略原索引并重新生成索引。keys
: 在拼接结果中添加层次化索引。import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=[0, 1, 2, 3])
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']},
index=[4, 5, 6, 7])
result = pd.concat([df1, df2])
print(result)
df3 = pd.DataFrame({'E': ['E0', 'E1', 'E2', 'E3'],
'F': ['F0', 'F1', 'F2', 'F3']},
index=[0, 1, 2, 3])
result = pd.concat([df1, df3], axis=1)
print(result)
原因: 当两个 DataFrame 有相同的列名时,直接拼接会导致列名重复。
解决方法: 使用 keys
参数为每个 DataFrame 添加一个标识符,或者重命名重复的列名。
result = pd.concat([df1, df3], axis=1, keys=['df1', 'df3'])
print(result)
原因: 默认情况下,拼接后的索引会保留原索引,可能导致索引不连续。
解决方法: 设置 ignore_index=True
忽略原索引并重新生成连续的索引。
result = pd.concat([df1, df2], ignore_index=True)
print(result)
通过这些方法,可以有效地使用 pandas.concat
来处理各种数据拼接需求。
领取专属 10元无门槛券
手把手带您无忧上云