文章目录
1、Pandas
Pandas 库是以Numpy库为基础构建的,通常用来处理表格型(关系型)的数据集或与时间序列相关的数据集。
Pandas的优点总结如下:
- Pandas提供了快速高效的DataFrame对象,可用于集成索引的数据集操作。
- Pandas提供了对各种格式数据的读取和写入工具。
- 提供智能的数据对齐功能和缺失数据处理方式,可以方便地将混乱的数据处理成有序的形式。
- 可以很灵活地进行数据集的维度变换和旋转。
- 基于DataFrame对象的标签,可以对数据集进行灵活的切片、花式索引,或将大数据集分拆为多个小子集。
- 当需要修改数据尺度时,允许对数据对象中的数据列进行添加和删除操作。
- 提供了强大的分组引擎,可以对分组数据集进行拆分、应用、组合等操作,也可以方便地对数据集进行汇总统计和转换。
- 提供了对多个数据集进行高效合并和连接的方法。
- 分层轴索引提供了在低维数据结构中处理高维数据的直观方式。
- 提供了方便的时间序列操作功能。
- Pandas经过了高度的性能优化,执行效率高。
- 应用领域广泛。
一般使用如下方式引入Pandas库:
import pandas as pd
Pandas有两种主要的数据结构:
- Series:一维数组,与Numpy中一维的ndarray相似,数据结构接近Python中的List列表,数据元素可以是不同的数据类型。
- DataFrame:二维数据结构,可以近似将其看成由多个Series组成。
2、Series数据结构
Series是一种类似于一维数组的对象,它由一组数据以及与其对应的标签(索引)组成,数据可以是任何Numpy数据类型。
2.1 Series的创建
创建Series对象的语法格式如下:
pandas.Series(data,index)
data表示数据值,index为对应的索引,可以自定义索引,若未自定义,则自动创建0~N-1的整数型索引(N为数据长度)
Series的创建:
import pandas as pd
s1 = pd.Series([1,2,3,4,5]) #使用默认整数索引创建Series
ls = ['a','b','c','d','e']
s2 = pd.Series([1,2,3,4,5],index=ls) #使用自定义索引创建Series
print(s1)
print(s2)
2.2 Series的索引与访问
若创建Series的过程中自定义了索引,那么访问数据时可以通过自定义索引或整数索引进行访问。若采用整数索引对Series进行切片访问,则切片片区不包含最右侧索引;若采用自定义索引切片,则包含最右侧索引。
Series的索引访问:
ls = ['a','b','c','d','e']
s2 = pd.Series([1,2,3,4,5],index=ls) #使用自定义索引创建Series
print(s2[0:2]) #使用整数索引切片访问Series
print(s2['a':'c']) #使用自定义索引切片访问Series
2.3 Series的常见操作
创建Series后,可以对其进行常见数组操作,包括标量乘法、数据过滤、应用数学函数等。
import numpy as np
ls = ['a','b','c','d','e']
s2 = pd.Series([1,2,3,4,5],index=ls) #使用自定义索引创建Series
print(s2)
print(s2**2) #使用标量乘法计算平方
print(s2[s2>3]) #筛选大于3的元素
print(np.sqrt(s2)) #应用数学函数开方
而针对Series内的元素,可以对其进行数据值的新增、修改和删除。
ls = ['a','b','c','d','e']
s2 = pd.Series([1,2,3,4,5],index=ls) #使用自定义索引创建Series
print("原始Series为:\n",s2)
s2['f']=8
print("添加元素后的Series为:\n",s2)
s2['a']=9
print("修改元素后的Series为:\n",s2)
s2 = s2.drop('c')
print("删除元素后的Series为:\n",s2)
此外还可以通过字典来创建Series对象,因为字典中的数据都是以键值对的形式存储,所以将其转换为Series时会使用其中的键部分作为索引,值部分作为数据值。与字典不同的是,字典中的条目是无序的,而Series中的数据是有序的。
dic = {
'a':6,'b':7,'c':8,'d':9,'f':10}
s = pd.Series(dic)
print(s)
3、DataFrame对象
DataFrame是一个表格型