数据分析全系列教程:Pandas快速上手指南

数据分析全系列教程:Pandas快速上手指南

Pandas是Python中用于数据处理和分析的主要库,由AQR 资本管理公司的Wes McKinney于2008年开始编写,专为处理金融数据。

 

对金融人士来说,它有以下几点重要作用:

 

1、数据处理Pandas可以轻松地导入、清洗和整理各种格式的数据,如CSV、Excel或数据库。

 

2、时间序列分析:金融数据通常为时间序列格式,Pandas为时间序列提供了强大的支持,如重采样、滑动窗口或时移等。

 

3、数据探索:Pandas提供了丰富的功能来描述统计数据、查找缺失值或异常值,这对金融分析尤为重要。

 

4、快速计算:对于金融指标或其他计算,Pandas提供了高效的矢量化操作。

 

图片

 

下面,我们跟着Pandas官方提供的10分钟入门手册来了解一下这个经典的数据分析模块吧!

 

首先,导入模块:

 

图片

 

编程君为大家准备了Python思维导图,搭建知识网络,快速梳理知识点

图片

一、创建对象

通过传递一个列表来创建一个Series(序列),让pandas创建一个默认的整数索引:

 

图片

 

通过传递一个NumPy数组,使用`date_range()`和带标签的列创建一个DataFrame:

 

图片

 

通过传递一个可以转换为类似序列结构的Dictionary(字典)来创建DataFrame:

 

图片

 

图片

二、查看数据

使用`DataFrame.head()`和`DataFrame.tail()`分别查看框架的前几行和后几行:

 

图片

显示DataFrame的索引或列:

 

图片

`describe()` 函数显示数据的快速统计摘要:

 

图片

转置您的数据:

 

图片

`DataFrame.sort_index()` 按序列排序:

 

图片

 

`DataFrame.sort_values()` 按值进行排序:

 

图片

图片

三、筛选

获取行/列数据

 

选择一个单独的列,返回一个Series(序列),语法与df.A等价:

图片

通过`[ ]`选择,可以切片行:

 

图片

 

通过label筛选

 

使用label获取横截面:

 

图片

按label在多轴(multi-axis)上进行选择:

 

图片

用label切片,两端都包含在内:

 

图片

 

返回对象降维:

 

图片

 

获取标量值(Scalar value):

 

图片

 

为了快速访问标量(Scalar),与之前的方法等价:

 

图片

 

通过位置筛选

 

通过传递的整数位置进行选择:

 

图片

通过整数切片,类似于NumPy/Python的操作方式:

 

图片

通过整数位置的列表,类似于NumPy/Python风格:

 

图片

行切片:

 

图片

 

列切片:

 

图片

获取某一个值:

 

图片

等价且更快速的写法:

 

图片

布尔索引

 

使用单个列的值来选择数据:

 

图片

从DataFrame中选择满足布尔条件的值:

 

图片

使用`isin()`方法进行过滤:

 

图片

设置

 

设置新列,并自动根据索引对齐数据:

 

图片

 

通过label设置值:

 

图片

 

按位置设置值:

 

图片

通过使用NumPy数组进行设置:

 

图片

 

先前设置操作的结果:

 

图片

 

用`where`进行设置:

 

图片

缺失值处理

 

pandas主要使用值np.nan来表示缺失数据。默认情况下,它不参与计算。

 

重新索引允许您在指定的轴上更改/添加/删除索引。这将返回数据的副本:

 

图片

`DataFrame.dropna()` 删除任何具有缺失数据的行:

 

图片

`DataFrame.fillna()` 填充缺失数据:

 

图片

`isna()` 找到表中的nan值:

 

图片

 

当下Python和人工智能相关前沿技术可谓是非常火爆,人工智能、机器学习等领域逐渐在我们的生活、工作、科研中都越来越重要。

图片

四、运算

统计

 

一般情况下,统计中不包含缺失数据。

 

执行描述性统计:

 

图片

在另一个轴上进行相同的操作:

 

图片

 

在处理具有不同维度且需要对齐的对象时,此外,pandas会自动沿指定的维度进行广播:

 

图片

apply方法

 

`DataFrame.apply()` 将用户定义的函数应用于数据:

 

图片

 

记频数

 

图片

 

字符串处理方法

 

Series在str属性中配备了一组字符串处理方法,使得对数组的每个元素进行操作变得容易,就像下面的代码片段中所示。请注意,str中的模式匹配通常默认使用正则表达式(在某些情况下始终使用)。

 

图片

合并

 

pandas提供了各种便利的功能,可以轻松地将Series和DataFrame对象进行组合,并使用不同类型的索引集逻辑和关系代数功能来执行拼接/连接操作。

 

拼接

 

使用`concat()` 函数沿着轴将pandas对象拼接在一起:

 

图片

 

连接

 

`merge()` 可以在特定列上实现 SQL 风格的连接类型(按某列进行合并)。

 

图片

分组

 

通过“分组”我们指的是涉及以下一项或多项步骤的过程:

● 根据某些标准将数据分成组

● 对每个组独立应用函数

● 将结果合并到一个数据结构中

准备数据:

 

图片

对结果进行分组,然后应用`sum()`函数:

 

图片

按多列分组形成层次索引,然后我们可以再次应用`sum()`函数:

 

图片

 

 

图片

五、重塑(reshape)

堆叠(stack)

 

图片

 

`stack()` 方法在DataFrame的列中“压缩”至一个level:

 

图片

 

“堆叠”DataFrame或Series(具有MultiIndex作为索引)时,`stack()`的逆操作是`unstack()`,默认情况下会取消堆叠最后一级:

 

图片

数据透视表

 

创建原始数据:

 

图片

`pivot_table()`函数可以根据指定的值、索引和列来对DataFrame进行透视。

 

图片

图片

六、时间序列

pandas具有简单、强大和高效的功能,可以在频率转换期间执行重新采样操作(例如将每秒数据转换为每5分钟数据),这在金融应用中非常常见。

 

图片

转换时间跨度表示:

 

图片

在周期和时间戳之间进行转换可以使用一些方便的算术函数。在下面的示例中,我们将一个以11月结束的季度频率转换为季度结束后一个月底上午9点:

 

图片

今天,编程君为大家推荐一套,很多公司内部都在用的《Python项目开发实战》.pdf资料

图片

七、分类

pandas可以在DataFrame中包含分类数据:

 

图片

将原始成绩转换为分类数据类型:

 

图片

将类别重命名为更有意义的名称:

 

图片

重新排序分类,并同时添加缺失的分类(`Series.cat()`下的方法默认返回一个新的Series):

 

图片

分类排序是按照顺序进行的,而不是按词汇顺序排列:

 

图片

 

按分类列分组还会显示空类别:

 

图片

 

图片

八、绘图

图片

图片

在DataFrame上,`plot()`方法是一个方便的方法,可以绘制所有带有标签的列。

 

图片

图片

 

图片

九、数据的读写

CSV

 

写入CSV文件:使用`DataFrame.to_csv()` 函数。

图片

读取CSV文件:使用 `read_csv()` 函数。

 

图片

 

EXCEL

 

使用`DataFrame.to_excel()`将数据写入Excel文件:

 

图片

 

使用`read_excel()`从Excel文件中读取数据:

 

图片

 

这是一份针对新用户的Pandas简短介绍。

数据分析全系列教程:Pandas快速上手指南

Pandas是Python中用于数据处理和分析的主要库,由AQR 资本管理公司的Wes McKinney于2008年开始编写,专为处理金融数据。

 

对金融人士来说,它有以下几点重要作用:

 

1、数据处理Pandas可以轻松地导入、清洗和整理各种格式的数据,如CSV、Excel或数据库。

 

2、时间序列分析:金融数据通常为时间序列格式,Pandas为时间序列提供了强大的支持,如重采样、滑动窗口或时移等。

 

3、数据探索:Pandas提供了丰富的功能来描述统计数据、查找缺失值或异常值,这对金融分析尤为重要。

 

4、快速计算:对于金融指标或其他计算,Pandas提供了高效的矢量化操作。

 

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/102066
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 24 日 下午2:05
下一篇 2024 年 7 月 26 日 上午11:50

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注