pandas 串联

在数据处理中,经常会遇到需要将两个或多个数据框连接在一起的情况,这时就需要用到 pandas 中的串联(concatenation)操作。串联可以帮助我们在不改变原始数据的情况下,将它们按照我们的需求拼接在一起。本文将详细介绍 pandas 中的串联操作,包括横向串联和纵向串联,以及一些常见的应用场景。
横向串联
横向串联是指将两个数据框按列的方向连接在一起。在 pandas 中,我们可以使用 pd.concat() 函数来实现横向串联。假设我们有以下两个数据框 df1 和 df2:
import pandas as pd
data1 = {'A': [1, 2, 3],
'B': [4, 5, 6]}
data2 = {'C': [7, 8, 9],
'D': [10, 11, 12]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
print(df1)
print(df2)
运行以上代码,我们可以看到 df1 和 df2 的内容分别是:
A B
0 1 4
1 2 5
2 3 6
C D
0 7 10
1 8 11
2 9 12
接下来,我们使用 pd.concat() 函数来横向串联这两个数据框:
result = pd.concat([df1, df2], axis=1)
print(result)
运行以上代码,我们可以得到如下结果:
A B C D
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
可以看到,df1 和 df2 已经成功横向串联在一起,形成了新的数据框 result。
纵向串联
纵向串联是指将两个数据框按行的方向连接在一起。同样地,在 pandas 中,我们可以使用 pd.concat() 函数来实现纵向串联。还是以 df1 和 df2 为例,我们来看看如何进行纵向串联:
result = pd.concat([df1, df2], axis=0)
print(result)
运行以上代码,我们可以得到如下结果:
A B C D
0 1.0 4.0 NaN NaN
1 2.0 5.0 NaN NaN
2 3.0 6.0 NaN NaN
0 NaN NaN 7.0 10.0
1 NaN NaN 8.0 11.0
2 NaN NaN 9.0 12.0
可以看到,df1 和 df2 已经成功纵向串联在一起,形成了新的数据框 result。需要注意的是,由于 df1 和 df2 的列名不一样,在纵向串联时,pd.concat() 函数会将列名不同的部分用 NaN 填充。
应用场景
数据合并
串联操作在数据合并方面应用非常广泛。例如,在机器学习中,我们常常将两个数据集按行方向串联,以构建训练集和测试集。在这种情况下,我们可以使用 pd.concat() 函数来轻松实现数据的合并。
数据清洗
在数据清洗过程中,有时我们需要将两个数据框的相同列进行合并。这时,我们可以使用横向串联来实现这一目标。例如,假设我们有两个数据框 df1 和 df2,它们都包含了 ID 和 Name 两列,我们可以使用如下方式对它们进行横向串联:
result = pd.concat([df1[['ID', 'Name']], df2[['ID', 'Name']]], axis=1)
print(result)
数据分析
在数据分析过程中,有时我们需要将多个数据集进行串联,以便进行更全面的分析。通过串联操作,我们可以将不同数据集的信息整合在一起,从而更好地理解数据的内在关系。
结语
本文介绍了 pandas 中的串联操作,包括横向串联和纵向串联,以及一些常见的应用场景。串联是一种非常实用的数据处理方式,能够帮助我们快速、灵活地对多个数据框进行整合,为数据分析提供便利。
极客教程