数据分析全系列教程:Pandas快速上手指南
Pandas是Python中用于数据处理和分析的主要库,由AQR 资本管理公司的Wes McKinney于2008年开始编写,专为处理金融数据。
对金融人士来说,它有以下几点重要作用:
1、数据处理:Pandas可以轻松地导入、清洗和整理各种格式的数据,如CSV、Excel或数据库。
2、时间序列分析:金融数据通常为时间序列格式,Pandas为时间序列提供了强大的支持,如重采样、滑动窗口或时移等。
3、数据探索:Pandas提供了丰富的功能来描述统计数据、查找缺失值或异常值,这对金融分析尤为重要。
4、快速计算:对于金融指标或其他计算,Pandas提供了高效的矢量化操作。
下面,我们跟着Pandas官方提供的10分钟入门手册来了解一下这个经典的数据分析模块吧!
首先,导入模块:
一、创建对象
通过传递一个列表来创建一个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值:
四、运算
统计
一般情况下,统计中不包含缺失数据。
执行描述性统计:
在另一个轴上进行相同的操作:
在处理具有不同维度且需要对齐的对象时,此外,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点:
七、分类
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
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!