龙空技术网

pandas如何使用concat实现连接功能

乔乔公爵 225

前言:

当前我们对“python中的concat函数”都比较讲究,朋友们都想要分析一些“python中的concat函数”的相关内容。那么小编同时在网摘上搜集了一些有关“python中的concat函数””的相关内容,希望兄弟们能喜欢,朋友们一起来了解一下吧!

平时工作中,我们经常有需要将两个不同的数据集连接到一起的情况,pandas为我们提供了concat函数专门处理这类情况。下面我们先通过一个简单的例子演示一下concat的基本用法。

首先,我们设计两个用于演示的DataFrame。

concat函数的第一个参数可以接受Series或者DataFrame的序列或者映射。例如程序的第20行,将两个DataFrame生成列表传入concat函数,我们就将df1和df2两个DataFrame连接到一起。

函数的返回值是连接好之后的对象。例如上图为连接后的对象。我们可以通过索引很容易看出两个DataFrame已经连接到一起,但是索引仍然保留原来的数值。这个时候我们可以通过reset_index来重置索引,例如程序第24行,并且如果我们在重置索引的过程中,不保留原有索引的值,可以设置参数drop为True

以上就是concat的最基本用法,我们将两个DataFrame按行连接到一起。下面我们用一个实际的例子,演示一下上面的例子的实际用途。

假定我们有一个关于分行的数据,每个分行都有两列,分别是“发放金额”和“贷款余额”,其中第1个DataFrame包含“哈尔滨”,“大连”,“天津”3个分行的数据。第2个DataFrame包含“重庆”,“成都”2个分行的数据。为了把所有分行的数据放在一起,我们就可以像之前一样调用concat函数,例如程序的第22行。下图为原始数据。

连接之后的数据如下图所示,由于索引列就是分行名称,所以我们就不再需要重置索引了。

concat函数的axis参数默认是0,代表按索引连接,就像上面的例子一样,如果参数值为1,则可以按列连接数据。现在我们再通过一个例子,演示一下如果按列连接数据。

假定我们有2个DataFrame,他们的索引是相同的,分别为“哈尔滨分行”,“大连分行”和“天津分行”,但是列是不同的,分别为“发放金额”、“贷款余额”和“逾期余额”、“不良余额”。

在程序第22行中,我们设置axis参数为1按列连接。即按不同的分行,在同一行中一起展示不同的报表数值。

有的时候,我们的数据来自不同的来源,但是在连接的时候,我们还需要保留来源。这时我们可以通过concat函数的keys参数来实现。下面我们通过一个实例来演示。

假定我们有三个DataFrame,分别代表三个不同分行的贷款指标。如果按照之前的方法连接到一起,我们将无法区分出是哪个分行的数据。为了区分不同的来源,我们可以像程序第29行,通过keys参数,我们指定每个DataFrame的名字。这时会在concat之后生成一个多级索引,并指出每组数据分别代表哪个分行。

连接之后的数据如下,在concat的过程中,我们指定了不同的keys参数,keys参数的顺序和第一个参数中DataFrame的顺序要保持一致,这样concat才可以确定哪个DataFrame是与哪个keys相对应。

以上就是关于concat函数的基本用法,希望对大家学习pandas的数据操作能有所帮助。

开发环境:Windows 7 + Python 2.7.17 + PyCharm Community Edition 2016.1.5

如果大家认为我的文章还可以,真心希望能帮我点一个“关注”,粉丝的数量真的对我很重要,也算是对我努力结果的一个支持,谢谢大家了。

标签: #python中的concat函数