Python之pandas库基础

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(['丁一', '王二', '张三'])

s1的打印输出结果如下,它也是一个一维数据结构,并且每个元素都有一个可以用来定位的行索引:
Python之pandas库基础_第1张图片
Series单独使用相对较少,pandas库主要是为了使用它提供的DataFrame数据结构。DataFrame是一种二维表格数据结构,可以将其看成一个Excel表格。

1.二维数据表格DataFrame的创建

DataFrame可以通过列表、字典或二维数组创建,下面分别介绍具体创建方法。

1.1 通过列表创建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)   # 在Jupyter Notebook中也可以直接输入变量名a来查看

运行结果如下。
在这里插入图片描述
通过比较可以发现,用pandas库的DataFrame()函数创建的DataFrame更像Excel中的二维表格数据,它也有行索引和列索引。需要注意的是,这里的索引序号是从0开始的。

1.2 通过字典创建DataFrame

除了通过列表创建DataFrame,还可以通过字典创建DataFrame,并可以自定义列索引,这里默认字典键为列索引,代码如下:

import pandas as pd
b = pd.DataFrame({'a': [1, 3, 5], 'b': [2, 4, 6]}, index=['x', 'y', 'z'])
print(b)  # 在Jupyter Notebook中也可以直接输入变量名b来查看

运行结果如下,可以看到列索引已经变成了字典里的键名。
在这里插入图片描述
如果想让字典键变成行索引,可以使用from_dict()函数将字典转换成DataFrame,并同时设置orient参数为index,代码如下:

c = pd.DataFrame.from_dict({'a': [1, 3, 5], 'b': [2, 4, 6]}, orient="index")
print(c)

其中orient参数用于指定字典键为列索引还是行索引,默认值为columns,即默认字典键为列索引,如果设置成index,则表示字典键为行索引,运行结果如下:

在这里插入图片描述

1.3 通过二维数组创建DataFrame

在NumPy库创建的二维数组的基础上,也可以创建DataFrame,代码如下:

import numpy as np, pandas as pd
d = pd.DataFrame(np.arange(12).reshape(3, 4), index=[1, 2, 3], columns
=['A', 'B', 'C', 'D'])

d的打印输出结果如下:
在这里插入图片描述

2. Excel工作簿等文件的读取和写入

通过pandas库可以从多种数据文件中读取数据,也可以将获得的数据写入这些文件中

2.1 文件的读取

以下代码用于读取Excel工作簿中的数据。

import pandas as pd
data = pd.read_excel('data.xlsx')  # data为DataFrame结构

这里的Excel工作簿文件扩展名为.xlsx,如果是2003版或更早版本的Excel工作簿文件,其扩展名为.xls。这里使用的文件路径是相对路径,即代码文件所在的文件夹,也可以设置成绝对路径。

通过打印data便可以查看读取到的表格内容,也可以使用data.head()函数打印表格的前5行内容,代码如下。如果写成data.head(10),则可以打印前10行内容,依此类推。

read_excel()函数还可以设定更多参数,演示代码如下。

data = pd.read_excel('data.xlsx', sheet_name=0, encoding='utf-8')

除了读取Excel工作簿,pandas库还可以读取CSV文件。CSV文件本质上是一个文本文件,它仅存储数据,不能像Excel工作簿那样存储格式、公式、宏等信息,所以所占存储空间通常较小。CSV文件一般用逗号分隔一系列值,既可以用Excel打开,也可以用文本编辑器(如“记事本”)打开。

以下代码用于读取CSV文件。

data = pd.read_csv('data.csv', delimiter=',', encoding='utf-8')

2.2 文件的写入

以下代码可以将数据写入Excel工作簿:

# 先创建一个DataFrame
data = pd.DataFrame([[1, 2], [3, 4], [5, 6]], columns=['A列', 'B列'])
# 将DataFrame中的数据写入Excel工作簿
data.to_excel('data_new.xlsx')

你可能感兴趣的:(python,pandas,开发语言)