Pandas数据连接pd.concat的实现

  • Post category:Python

Pandas是Python中一个重要的数据处理库,在数据处理过程中我们时常需要将多个数据或数据集进行连接、合并。而其中最常见的数据连接方式莫过于pd.concat()函数了。那么,本文将带您详细讲解“Pandas数据连接pd.concat的实现”的完整攻略。

一、什么是pd.concat()

pd.concat()函数是Pandas中常用的数据连接函数,可以沿着一条轴(即列或行)将多个数据集连接到一起。在连接不同的数据集时,需要注意数据集的维度要一致,才能保证连接后的数据集正确。函数基本用法如下:

pd.concat(objs, axis=0, join='outer', ignore_index=False)

参数说明:

  • objs:参与连接的数据集列表,可以是Series、DataFrame或Panel对象。
  • axis:连接轴,0表示按行连接,1表示按列连接,默认是0。
  • join:连接方式,默认是outer连接。还可以选择inner连接。
  • ignore_index:是否忽略原有的索引值,默认是False。

二、pd.concat()函数的实现过程

我们可以通过下面的例子来说明pd.concat()函数的实现过程:

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])
df3=pd.DataFrame({'A':['a8', 'a9', 'a10', 'a11'], 'B': ['b8', 'b9', 'b10', 'b11'], 'C':['c8', 'c9', 'c10', 'c11'], 'D':['d8', 'd9', 'd10', 'd11']}, index=[8,9,10,11])

df=pd.concat([df1, df2, df3], axis=0, join='outer', ignore_index=True)
print(df)

实现结果:

     A    B   C   D
0   a0   b0  c0  d0
1   a1   b1  c1  d1
2   a2   b2  c2  d2
3   a3   b3  c3  d3
4   a4   b4  c4  d4
5   a5   b5  c5  d5
6   a6   b6  c6  d6
7   a7   b7  c7  d7
8   a8   b8  c8  d8
9   a9   b9  c9  d9
10  a10  b10 c10 d10
11  a11  b11 c11 d11

从结果可以看出,三个数据集按照行的方向进行了拼接,新数据集索引值以数字代替,且对应的列全都显示出来了。

三、pd.concat()函数的应用场景

pd.concat()函数可以用于不同数据集的进行连接,也可以用于在同一数据集中添加新的记录数据。

举个例子,如果我们现有两个学生成绩记录表,一个是第一学期成绩,一个是第二学期成绩,而我们想要把两个表按照学生姓名进行拼接,那么我们就可以使用pd.concat()函数来实现。具体操作如下:

import pandas as pd

# 第一学期记录数据
df1=pd.DataFrame({'Name':['Tom', 'Jerry', 'Lucy', 'Lina'], 'Score1':[75, 83, 90, 78]})

# 第二学期记录数据
df2=pd.DataFrame({'Name':['Tom', 'Jerry', 'Lucy', 'Lina'], 'Score2':[85, 89, 92, 83]})

# 进行连接
df=pd.concat([df1, df2], axis=1, join='outer')

# 查看拼接结果
print(df)

输出结果:

    Name  Score1  Name  Score2
0    Tom      75   Tom      85
1  Jerry      83 Jerry      89
2   Lucy      90  Lucy      92
3   Lina      78  Lina      83

如上,我们对两个数据集按照学生姓名进行拼接,得到了每个学生在两个学期的成绩记录。可以看出,pd.concat()函数在这里显示了其强大的优势。