Pandas 拼接(concat)

  • Post category:Python

Pandas是Python数据分析中使用最广泛的库之一,而拼接(concat)是Pandas中非常常见的操作,本文将详细讲解Pandas拼接的完整攻略,并给出实际的操作示例。

一、什么是Pandas拼接

拼接指的是将多个独立的数据集合并成一个新的数据集的操作,它是数据分析中常用的一种数据整合方式。在Pandas中,可以使用concat()函数完成拼接操作。该函数的语法为:

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

其中各参数含义如下:

  • objs:用于拼接的多个数据集,可以是序列、数据框或多个序列/数据框组成的列表。
  • axis:需要拼接的轴方向,0表示行方向(垂直拼接),1表示列方向(水平拼接)。
  • join:拼接方式,inner表示内连接,outer表示外连接。
  • ignore_index:是否忽略原数据集中的索引,创建新的索引。
  • keys:指定对各数据集进行标记的层次化索引标签,一般用于标记不同数据集的来源。

二、使用示例

下面通过几个具体的例子演示如何使用concat()函数进行数据拼接。

例1:垂直拼接两个数据框

首先创建2个数据框:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': ['d', 'e', 'f']})

分别展示出的结果如下:

>>> df1
   A  B
0  1  a
1  2  b
2  3  c

>>> df2
   A  B
0  4  d
1  5  e
2  6  f

接下来垂直拼接这两个数据框,代码如下:

concat_df = pd.concat([df1, df2], axis=0, ignore_index=True)

其中axis=0表示按照行方向进行拼接(垂直拼接),ignore_index=True表示忽略原数据集中的索引,并创建新的索引。

最终拼接得到的结果如下:

>>> concat_df
   A  B
0  1  a
1  2  b
2  3  c
3  4  d
4  5  e
5  6  f

例2:水平拼接两个数据框

首先创建2个数据框:

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'C': [4, 5, 6], 'D': ['d', 'e', 'f']})

数据框df1df2的样式分别为:

>>> df1
   A  B
0  1  a
1  2  b
2  3  c

>>> df2
   C  D
0  4  d
1  5  e
2  6  f

接下来使用concat()函数将它们水平拼接起来,代码如下:

concat_df = pd.concat([df1, df2], axis=1)

其中axis=1表示按照列方向进行拼接(水平拼接)。

最终拼接得到的结果如下:

>>> concat_df
   A  B  C  D
0  1  a  4  d
1  2  b  5  e
2  3  c  6  f

可以看到,数据框df1和数据框df2的两列信息合并到了同一行中。

例3:自定义层次化索引

使用keys参数可以为拼接后的数据集创建一个层次化索引,示例如下:

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': ['d', 'e', 'f']})

concat_df = pd.concat([df1, df2], axis=0, keys=['df1', 'df2'])

其中keys=['df1', 'df2']表示为数据集df1df2创建一个层次化索引标记。拼接得到的结果如下:

>>> concat_df
       A  B
df1 0  1  a
    1  2  b
    2  3  c
df2 0  4  d
    1  5  e
    2  6  f

三、总结

本文详细讲解了Pandas拼接的完整攻略,包括拼接方式、参数含义、使用示例等。拼接是数据分析中不可或缺的操作,理解掌握Pandas拼接技巧对于提高数据分析效率至关重要。