Pandas创建DataFrame | 更文挑战

670 阅读2分钟

“这是我参与更文挑战的第3天,活动详情查看: 更文挑战

pandas库是基于NumPy库的一个开源Python库,广泛应用于完成数据快速分析、数据清洗和准备等工作,它的名字来源于“panel data”(面板数据)。pandas库提供了非常直观的数据结构及强大的数据管理和数据处理功能,某种程度上可以把pandas库看成Python版的Excel。pandas库也是Anaconda自带的,无须单独安装。与NumPy库相比,pandas库更擅长处理二维数据。pandas库主要有Series和DataFrame两种数据结构。Series类似于通过NumPy库创建的一维数组,不同的是Series对象不仅包含数值,还包含一组索引,其创建方式如下。

import pandas as pd
s1 = pd.series['fiz','ken']

s1的打印输出结果如下,它也是一个一维数据结构,并且每个元素都有一个可以用来定位的行索引,例如,可以通过s1[1]来定位到第2个元素“ken”。

0 fiz
1 ken

Series单独使用相对较少,我们学习pandas库主要是为了使用它提供的DataFrame数据结构。DataFrame是一种二维表格数据结构,可以将其看成一个Excel表格。

通过列表创建DataFrame

通过列表创建DataFrame和通过NumPy库创建二维数组比较类似。引入pandas库的方式通常为“import pandas as pd”,然后调用DataFrame()函数创建DataFrame,代码如下。

import pandas as pd
a = pd.dataframe([[1,2],[3,4],[5,6]])
print (a)

运行结果如下:

  0 1
0 1 2
1 3 4
2 5 6

和之前通过NumPy库创建的二维数组进行比较。

[[1 2]
[3 4]
[5 6]]

通过比较可以发现,用pandas库的DataFrame()函数创建的DataFrame更像Excel中的二维表格数据,它也有行索引和列索引。需要注意的是,这里的索引序号是从0开始的。我们还可以在创建DataFrame时自定义列索引和行索引的名称,代码如下:

a = pd.DataFrame([[1,2],[3,4],[5,6]],columns=['date','score'],index = ['A','B','C'])

其中columns代表列索引名称,index代表行索引名称,a的打印输出结果如下。

  date score
A   1    2
B   3    4
c   5    6

通过列表创建DataFrame还可以采用如下方式。

a = pd.DataFrame()
date = [1,3,5]
score = [2,4,6]
a['date'] = date
a['score'] =score

注意要保证date列表和score列表的长度一致,否则会报错,a的打印输出结果如下。

  date score
0   1    2
1   3    4
2   5    6

此外我们还能通过字典 and 二维数组 创建DataFrame。