Pandas concat() 示例

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中。

六、参考

Published At
Categories with 技术
Tagged with
comments powered by Disqus