目录
概述
Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。
Pandas 适用于处理以下类型的数据:
- 与 SQL 或 Excel 表类似的,含异构列的表格数据;
- 有序和无序(非固定频率)的时间序列数据;
- 带行列标签的矩阵数据,包括同构或异构型数据;
- 任意其它形式的观测、统计数据集, 数据转入 Pandas 数据结构时不必事先标记。
一、创建Pandas对象
- 通过传一些值的列表来创建一个Series,Pandas会自动创建一个默认的整数索引
- 通过传递带有日期时间索引和带标签列的NumPy数组来创建DataFrame
- 通过传递可以转化为类似Series的dict对象来创建DataFrame
二、查看数据
(一)head()和tail()方法
查看DataFrame的顶部和头部
(二)显示索引、列和底层NumPy数据
(三)to_numpy()方法
对于df这种所有值为单一类型的DataFrame,to_numpy()操作是高效的,并且不会复制数据
4. 然而对于df2这种DataFrame对象有多种类型的,to_numpy操作是比较费事的
(四)describe()方法
显示数据的快速统计概要
(五)转置数据
(六)按轴排序
(七)按值排序
三、选择
(一)获取
选择一个列,产生一个“Serise”,相当于“df.A”,这里也可以通过[]选择,对行进行切片
(二)按标签选择
通过标签获取一行数据
通过标签在多个轴上选择数据
通过标签同时在两个轴上切片
减少返回对象的大小
获取标量值
(三)按位置选择
通过整数切片,类似于numpy/Python
通过传递整数的列表按位置切片,类似于numpy/Python
整行切片和整列切片
获取具体值
(四)布尔索引
从满足条件的DataFrame中选择值
可以通过isin()方法过滤所需的值
(五)赋值
添加新列将自动根据索引对其数据
经过以上的步骤后
带有条件的赋值
四、缺失值
Pandas主要使用值np.nan来表示缺失的数据。通常情况下,它不包含在计算中。
重建索引允许更改/添加/删除指定轴上的索引。这个操作会返回一个副本,不会改变原有对象
删除任何带有缺失值的行
填充缺失值
获取值为nan的掩码
五、操作
(一)统计
进行描述性统计
在其他轴(行)上进行同样的操作
使用具有不同维度且需要对齐的对象进行操作。 此外,Pandas会自动沿指定维度进行广播。
(二)应用
将函数运用于数据
(三)直方图化
(四)字符串方法
Series在str属性中配备了一组字符串处理方法,可以轻松地对数组的每个元素进行操作,str中的模式匹配中默认情况下通常使用正则表达式
六、合并
(一)连接
- ==concat()==连接Pandas对象
拆分并连接起来
(二)join
SQL风格的合并,==merge()==方法
(三)追加
给DataFrame追加一行
七、分组
涉及以下步骤:
- 分割:根据一些标准将数据分成组
- 应用:将函数独立地应用于每个组
- 组合:将结果组合成数据结构
先构建一个DataFrame
八、重塑
堆叠(Stack)
==stack()==压缩DataFrame或者Series
==unstack()==是stack()的逆操作,默认情况下取消最后压缩的那个级别
九、数据透视表
我们有如下数据
现在我们将其生成透视表pivot_table()方法
十、时间序列
不解,待后续添加
十一、分类
Pandas可以在DataFrame中包含分类数据。
将原始成绩转换为category数据类型
通过调用Series.cat.categories来替换,将类别名重命名为更有意义的名称
Series.cat.set_categories()方法对categories重新排序并同时添加缺少的category
可以按categories中的顺序排序
按分类的列分组(groupby)可以显示空categories
十二、绘图
十三、数据输入\输出(各类型文件的输入输出)
在《Python数据分析学习(三)掌握数据加载、存储、文件格式》博文中将有更详细的说明
CSV文件
- 写入CSV文件
df.to_csv('foo.csv')
- 从CSV文件读数据
pd.read_csv('foo.csv')
Excel文件
- 写入excel文件
df.to_excel('foo.xlsx', sheet_name='Sheet1')
- 从Excel文件读取数据
pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
HDF5文件
写入HDF5
df.to_hdf('foo.h5', 'df')
从HDF5读取数据
pd.read_hdf('foo.h5', 'df')
结语
什么?不详细,不得劲,来来来说道说道,开个玩笑,大家的学习欲望还没有满足的话,可以继续学习哦,参考资料里为大家准备了不少学习的传送门,大家加油!
参考资料
- 文档
Pandas中文文档 - 视频教程
Python进阶-Pandas数据分析库
【全30集】使用 pandas 进行数据分析
注:两者均为哔哩哔哩视频,前者由国人讲授,后者为油管搬运(无字幕,有野生翻译菌,需量力而行) - 练习
Pandas练习
Pandas练习-GitHub
注:前者为后者的翻译内容