api参考:
1、合并两个Series。
>>> s1 = pd.Series(['a', 'b'])
>>> s2 = pd.Series(['c', 'd'])
>>> pd.concat([s1, s2])
0 a
1 b
0 c
1 d
dtype: object
2、将ignore_index
选项设置为True
,索引将重置。
>>> pd.concat([s1, s2], ignore_index=True)
0 a
1 b
2 c
3 d
dtype: object
3、使用keys选项在数据的最外层添加分层索引。
>>> pd.concat([s1, s2], keys=['s1', 's2'])
s1 0 a
1 b
s2 0 c
1 d
dtype: object
4、使用names选项标记您创建的索引键。
>>> pd.concat([s1, s2], keys=['s1', 's2'], names=['Series name', 'Row ID'])
Series name Row ID
s1 0 a
1 b
s2 0 c
1 d
dtype: object
5、合并DataFrame具有相同列的两个对象。
# df1
>>> df1 = pd.DataFrame([['a', 1], ['b', 2]], columns=['letter', 'number'])
>>> df1
letter number
0 a 1
1 b 2
# df2
>>> df2 = pd.DataFrame([['c', 3], ['d', 4]], columns=['letter', 'number'])
>>> df2
letter number
0 c 3
1 d 4
# concat
>>> pd.concat([df1, df2])
letter number
0 a 1
1 b 2
0 c 3
1 d 4
6、合并DataFrame具有重叠列的对象并返回所有内容。交叉点外的列将填充NaN值。
# df1
>>> df1 = pd.DataFrame([['a', 1], ['b', 2]], columns=['letter', 'number'])
>>> df1
letter number
0 a 1
1 b 2
>>> df3 = pd.DataFrame([['c', 3, 'cat'], ['d', 4, 'dog']], columns=['letter', 'number', 'animal'])
>>> df3
letter number animal
0 c 3 cat
1 d 4 dog
>>>pd.concat([df1, df3], sort=False)
letter number animal
0 a 1 NaN
1 b 2 NaN
0 c 3 cat
1 d 4 dog
7、组合DataFrame具有重叠列的对象,并仅返回通过传递inner给join关键字参数共享的对象。
>>> pd.concat([df1, df3], join="inner")
letter number
0 a 1
1 b 2
0 c 3
1 d 4
8、DataFrame传入 axis=1(axis默认为0),沿 x 轴水平组合对象
# df1
>>> df1 = pd.DataFrame([['a', 1], ['b', 2]], columns=['letter', 'number'])
>>> df1
letter number
0 a 1
1 b 2
# df4
>>> df4 = pd.DataFrame([['bird', 'polly'], ['monkey', 'george']], columns=['animal', 'name'])
>>> df4
animal name
0 bird polly
1 monkey george
# axis=1 值(追加列)
>>> pd.concat([df1, df4], axis=1)
letter number animal name
0 a 1 bird polly
1 b 2 monkey george
# axis=0 默认 值(追加行,无值补NaN)
>>> pd.concat([df1, df4], axis=0)
animal letter name number
0 NaN a NaN 1.0
1 NaN b NaN 2.0
0 bird NaN polly NaN
1 monkey NaN george NaN
9、使用verify_integrity选项防止结果包含重复的索引值 。
>>> df5 = pd.DataFrame([1], index=['a'])
>>> df5
0
a 1
>>> df6 = pd.DataFrame([2], index=['a'])
>>> df6
0
a 2
>>> pd.concat([df5, df6], verify_integrity=True)
Traceback (most recent call last):
...
ValueError: Indexes have overlapping values: ['a']
参考官方文档。