Pandas concat() 方法用于连接数据框和系列等 Pandas 对象,我们可以通过各种参数来改变连接操作的行为。
1、Pandas concat() 语法
concat() 方法语法是:
1concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
2 keys=None, levels=None, names=None, verify_integrity=False,
3 sort=None, copy=True)
- objs:一个数据对象的序列
- join:可选参数来定义如何处理其他轴上的索引。有效值是
内部
和外部
。 - join_axes:在版本 0.25.0 中添加一个标识符的序列。
- ignore_index:如果是真的,则从源对象的索引将被忽视,并且从 0.1,2..n 来的索引序列将被分配给结果 keys:在结果索引中添加一个标识符的序列。 **:一个序列来指定创建多个索引的独特级
推荐阅读: [Python Pandas 教程]( / 社区 / 教程 / python-pandas - 模块 - 教程)
2. 巴达 concat() 例子
让我们来看看一个简单的例子来连接两个DataFrame对象。
1import pandas
2
3d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
4d2 = {"Name": "David", "ID": 3}
5
6df1 = pandas.DataFrame(d1, index={1, 2})
7df2 = pandas.DataFrame(d2, index={3})
8
9print('********\n', df1)
10print('********\n', df2)
11
12df3 = pandas.concat([df1, df2])
13
14print('********\n', df3)
输出:
1********
2 Name ID
31 Pankaj 1
42 Lisa 2
5********
6 Name ID
73 David 3
8********
9 Name ID
101 Pankaj 1
112 Lisa 2
123 David 3
请注意,连接是以行方式执行的,即 0 轴,此外,源 DataFrame 对象的索引也保存在输出中。
四、 轴心 轴心 轴心 1
1d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
2d2 = {"Role": ["Admin", "Editor"]}
3
4df1 = pandas.DataFrame(d1, index={1, 2})
5df2 = pandas.DataFrame(d2, index={1, 2})
6
7df3 = pandas.concat([df1, df2], axis=1)
8print('********\n', df3)
输出:
1********
2 Name ID Role
31 Pankaj 1 Admin
42 Lisa 2 Editor
在源对象中包含对象的不同类型的数据时,沿列的连接是有意义的。
将密钥分配到连接数据框的索引中
1d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
2d2 = {"Name": "David", "ID": 3}
3
4df1 = pandas.DataFrame(d1, index={1, 2})
5df2 = pandas.DataFrame(d2, index={3})
6
7df3 = pandas.concat([df1, df2], keys=["DF1", "DF2"])
8print('********\n', df3)
输出:
1********
2 Name ID
3DF1 1 Pankaj 1
4 2 Lisa 2
5DF2 3 David 3
5. 忽略 Concatenation 中的源数据框对象
1d1 = {"Name": ["Pankaj", "Lisa"], "ID": [1, 2]}
2d2 = {"Name": "David", "ID": 3}
3
4df1 = pandas.DataFrame(d1, index={10, 20})
5df2 = pandas.DataFrame(d2, index={30})
6
7df3 = pandas.concat([df1, df2], ignore_index=True)
8print('********\n', df3)
输出:
1********
2 Name ID
30 Pankaj 1
41 Lisa 2
52 David 3
当源对象中的索引没有很大意义时,这是有用的,所以我们可以忽略它们并将默认索引分配到输出DataFrame中。