十分钟上手pandas|应用指南

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/84064168

pandas是一个Python包,提供快速,灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的使用既简单又直观。

Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

利用pandas可以从DataFrame和更高维对象插入和删除列;

也可以轻松地将其他Python和NumPy数据结构中的不规则索引数据转换为DataFrame对象;

还可以轻松处理浮点中的缺失数据(表示为 NaN)以及非浮点数据……pandas的功能无比强大。

如果你还没有安装pandas,可以在GitHub上找到源代码,最新发布版本的二进制安装程序可在Python包索引和conda上获得。https://github.com/pandas-dev/pandas

在本文中,我们主要从以下几个方面来进行pandas的讲解:

  • 导入需要环境

  • 数据结构创建

  • 查看数据

  • 数据选择

  • 缺失值处理

  • 统计分析

  • pandas绘图

|| 导入需要环境 ||

|| 数据结构的创建 ||

Pandas中有两种数据结构类型:series和DataFrame

01 Series

series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(索引)组成。

02 DataFrame

通过传递带有日期时间索引和标记列的NumPy数组来创建

创建二维数组,创建6行4列随机数,索引dates,列索引用ABCD表示

|| 查看数据 ||

01 查看组成

返回说明我们的这个数组是一个6行4列的数组。

02 查看值

显示出所有的值。

03 查询数据的前5行

04 查询数据的末尾5行

末尾五行并不是从最后一行倒着显示的,而是按照数据原来的顺序显示

05 查询指定的行

Df.head()和df.tail()都是默认的前五行和后五行,你可以通过在括号中间加入数字来显示你想查询的行数。

06 数据总行数

返回的值是6,说明我们的这个数组的总行数是6。

07 查询标签

 行标签:

列标签:

08 基本统计数据

在pandas当中,运用describe方法可以一次性输出一些基本的统计数据。

09 数据转置

10 数据排序

列标签排序:

行标签排序:

|| 数据选择 ||

01 简单选择

根据列选择:

根据行选择:

02 loc函数选择 

选择20180102到20180105间的数:

还可以更近一步限定条件,选择20180102到20180105之间的B、C两列:

03 通过位置的标签进行选择:iloc

04 直接定位:at 

访问特定值:20180102行的B列的值

05 布尔索引

选择df中大于0的值:

|| 缺失值处理 || 

在数据当中,很可能会遇到有缺失值的情况,首先我们给df这个数组增加缺失值。

只选用df数组中前四行的数据,并增加一列,前两行的数据为1,后两行为空值,在这里空值以NaN来表示。

01 删除缺失值

02 填写缺失值

将数组中的缺失值填写为7

03 获取值所在的布尔掩码

|| 统计分析 ||

pandas模块为我们提供了非常多的描述性统计分析的指标函数,如总和、均值、最小值、最大值等,我们来具体看看这些函数:

首先随机生成一组数据;

然后建立一个数组;

01 descirbe方法

一次性输出很多需要的数据

02 输出最小值

03 输出最大值

04 求和

05 均值

06 方差

07 标准差

08 偏度

09 峰度

10 输出最小值的位置

11 输出最大值的位置

|| pandas绘图 ||

目前有很多的开源框架所实现的绘图功能是基于matplotlib的,pandas便是其中之一,对于pandas数据,直接使用pandas本身实现的绘图方法比matplotlib更加方便简单。

 01 条形图

条形图适用于比较分类数据间的大小,用宽度相同的条形的高度来表示数据多少。

调用DataFrame的plot.bar()方法会产生一个多条形图:

堆积条形图,可以使用stacked=True:水平条形图, df.plot.barh(stacked=True)

 02 直方图

直方图是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。

可以使用DataFrame.plot.hist()和Series.plot.hist()方法绘制直方图。

03 箱线图

箱线图是一种用作显示一组数据分散情况资料的统计图,它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。

箱线图可以得出Series.plot.box()和DataFrame.plot.box(),或DataFrame.boxplot()可视化值中的每一列内的分布。

例如,这里是一个箱线图,表示在[0,1]上对均匀随机变量进行10次观测的五次试验。

Boxplot可以通过传递color关键字来着色。

当你通过传递其他类型的参数color关键字,它会直接传递到matplotlib所有boxes,whiskers,medians和caps 着色。

颜色应用于要绘制的每个框。如果你想要更复杂的着色,可以通过传递return_type来获取。

 04 区域图

可以使用Series.plot.area()和创建区域图DataFrame.plot.area()。

区域图表默认堆叠。要生成堆积区域图,每列必须是全部正值或所有负值。

当输入数据包含NaN时,它将自动填充0.如果要删除或填充不同的值,请在调用plot之前使用dataframe.dropna()或dataframe.fillna()。

05 散点图

可以使用该DataFrame.plot.scatter()方法绘制散点图,散点图需要x和y轴的数字列。这些可以通过x和y关键字指定。

 06 饼图

可以使用DataFrame.plot.pie()或创建饼图Series.plot.pie()。如果你的数据包含任何数据NaN,它们将自动填充0;如果你的数据中ValueError存在负值,则会引发数据。

对于饼图,最好使用方形图形,即图形纵横比1:1,或者在绘制后通过调用ax.set_aspect('equal')返回的 axes对象强制纵横比相等。

需要注意的是,饼图与DataFrame要求你通过y参数或指定目标列subplots=True。

如果subplots=True指定,则将每列的饼图绘制为子图。

07 密度图

可以使用Series.plot.kde()和DataFrame.plot.kde()方法创建密度图。

 

08 自相关图

自相关图通常用于检查时间序列中的随机性。这是通过在不同的时间滞后计算数据值的自相关来完成的。

如果时间序列是随机的,那么对于任何和所有时滞分离,这种自相关应该接近于零。

如果时间序列是非随机的,则一个或多个自相关将显着非零。图中显示的水平线对应95%和99%置信区间。虚线是99%置信区间。

更多精彩,请关注:

公众号ID

DataCastle-VIP

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/84064168