商务服务
Pandas(数据分析处理库)---讲解
2024-10-31 23:59


迪哥说以下的许多函数方法都不用死记硬背,多查API多看文档,确实,跟着迪哥混就完事了~~~
Pandas官网API

Pandas(数据分析处理库)---讲解

以下代码段均在Jupyter Notebook下进行运行操作
每天过一遍,腾讯阿里明天见~

Pandas工具包是专门用作数据处理和分析的,其底层的计算其实都是由Numpy来完成。

titanic.csv
在这里插入图片描述

,数据读取

将下载好的泰坦尼克号成员名单数据集放到Jupyter Notebook同级目录下
需要指定好数据的路径,至于read_csv()函数,默认读取的数据格式是.csv,也就是以逗号为分隔符的数据集
df.head(10)表示展示其中前10条数据
df.tail(10)表示展示其中后10条数据

在这里插入图片描述

在这里插入图片描述

,Dataframe结构

df是Pandas工具包中最常见的基础结构
pandas.core.frame.Dataframe可以把它当作是一个二维矩阵结构
基本上读取数据返回的都是Dataframe结构
df.info()函数用于打印当前读取数据的部分信息,包括数据样本规模、每列特征类型与个数、整体的内存占用等

返回索引

拿到每一列特征的信息

返回每一列特征的类型,其中object为python中的字符串类型

返回数据矩阵

,数据索引

通过指定名字来取其中某一列指标

在读取数据时,read_csv()函数会默认把读取数据中的第一行当作列名
对其中的数值进行操作

可以将姓名设置为索引,也可以自己设置其他索引。

在这里插入图片描述
如果想得到某个乘客的特征信息,可以直接通过姓名来查找

要通过索引来取某一部分具体数据,指定具体的几列

在这里插入图片描述
.iloc():用位置找数据
第一列是用户的信息特征,第二列是信息所对应的数据

使用切片获取一部分数据

在这里插入图片描述
也可以指定特征

在这里插入图片描述
.loc():用标签找数据
以名字为索引,指定名字来获取该人的数据信息

取当前数据的某一列信息

选择多个样本,例如从狗蛋儿到王二麻子之间的所有人信息

在这里插入图片描述
可以对数据进行赋值

在这里插入图片描述
bool类型同样可以当作索引
筛选Fare大于40的旅客信息,因为前面以及将姓名作为索引了,故这里只展示姓名信息

展示Fare大于40的前五个旅客所有信息

在这里插入图片描述
筛选前五个性别是男的旅客全部信息

在这里插入图片描述
计算所有男性旅客的平均年龄

统计年龄超过70岁的旅客有几个

,创建Dataframe

Dataframe是通过读取数据得到的
想展示某些信息,也可以自己创建
最简单的方法就是创建一个字典结构,其中key表示特征名字,value表示各个样本的实际值,然后通过pd.Dataframe()函数来创建

在这里插入图片描述
如果数据量过多,读取的数据不会全部显示,而是会隐藏部分数据,这时可以通过设置参数来控制显示结果
get_option可以查看默认显示的最大行数

get_option可以查看默认最大显示的列数

由于设置了display.max_rows=6,因此只显示其中6条数据,其余省略了

如果数据特征稍微有点多,可以设置得更大一些

在这里插入图片描述

,Series操作

前面提到的操作对象都是Dataframe
Series简单来说,读取的数据都是二维的,也就是Dataframe
如果在数据中单独取某列数据,那就是Series格式了,相当于Dataframe是由Series组合起来得到的

创建Series

通过索引查询操作与Dataframe是一样的
查看key为’b’所对应的数据的值

查看下标为1的数据的值

改值操作

也可以使用replace()函数
replace()函数的参数中多了一项inplace
如果设置inplace=False,就是不将结果赋值给变量,只相当于打印操作
如果设置inplace=True,就是直接在数据中执行实际变换,而不仅是打印操作

以改索引操作

方法一

方法二

增操作

删操作

也可以直接del选中数据的索引进行删除

,统计分析

在Dataframe中对数据进行计算跟Numpy差不多,默认都是对整体进行操作

在这里插入图片描述
对数据求和

对数据求均值

求数据的中位数

求数据的最大值

求数据的最小值

使用describe()函数,既可以得到各项统计指标,也可以观察数据是否存在

在这里插入图片描述
下面开始对泰坦尼克号旅客信息进行操作

在这里插入图片描述
协方差矩阵

在这里插入图片描述
相关系数

在这里插入图片描述
统计某一列各个属性的比例情况,需要使用value_counts()函数

统计性别这一列中所有属性的个数

指定顺序,个数少的排在前面,即从小到大排序

像年龄这种离散型指标就显得不太好处理

把所有年龄这一列中的所有数据平均分为为5组,因为ascending=True故从小到大排序

创建一个年龄数组ages,然后指定4个判断值,接下来就用这4个值把数据分成(0,10],(10,15],(15,30]这三组,返回的结果分别表示当前年龄属于哪组。

可以打印其默认标签值,当前分组结果

各组总人数

分为四组

自己给这四组进行定义标签

,pivot数据透视表

随便创建点数据,其中Category表示把钱花在什么用途上(如交通运输、家庭、娱乐等费用,Month表示统计月份,Amount表示实际的花费。

在这里插入图片描述
统计的每个月花费在各项用途上的金额分别是多少

在这里插入图片描述
这几个月中每项花费的总额

每个月所有花费的总额

使用泰坦尼克号旅客信息来进行实操
Pclass表示船舱等级,Fare表示船票的价格
按乘客的性别分别统计各个舱位购票的平均价格
index指定了按照什么属性来统计,columns指定了统计哪个指标,values指定了统计的实际指标值是什么

在这里插入图片描述
平均值相当于是默认值,如果想指定最大值或者最小值,还需要额外指定aggfunc来明确结果的含义

在这里插入图片描述
统计各个船舱等级的人数

在这里插入图片描述
首先按照年龄将乘客分成两组:成年人和未成年人。再对这两组旅客分别统计不同性别的人的平均获救可能性

在这里插入图片描述

,groupby操作

在这里插入图片描述
统计各个key中对应的data数值总和,一般方法

统计各个key中对应的data数值总和,groupby

在这里插入图片描述
统计各个key中对应的data均值,groupby

在这里插入图片描述
使用泰坦尼克号旅客数据集,按照不同性别统计其年龄的平均值

groupby()函数中还有很多参数可以设置

在这里插入图片描述
观察groupby某一列(A列)后结果的数量

在这里插入图片描述
观察groupby某一列(A、B列)后结果的数量

在这里插入图片描述
求和

在这里插入图片描述
加入索引,按照传入参数的顺序来指定

在这里插入图片描述
使用describe()方法来展示前5条统计信息

在这里插入图片描述
可以自己设置需要的统计指标

在这里插入图片描述

在groupby操作中还可以指定操作的索引(也就是level

光有索引还不够,还需要具体数值

通过level参数可以指定以哪项为索引进行计算
当level为0时,设置名为first的索引
当level为1时,设置名为second的索引

如果觉得指定一个数值不够直观,也可以直接用具体名字,结果相同

,Merge操作

先创建两个Dataframe,key值相同

在这里插入图片描述

在这里插入图片描述
按照key列把两份数据整合在一起,这里的key值是一样的

在这里插入图片描述
再创建两个Dataframe,key1列和key2列的前3行都相同,但是第4行的值不同

在这里插入图片描述

在这里插入图片描述
前3行相同的都组合在一起了,但是第4行却被直接抛弃了

在这里插入图片描述
额外设置一个how参数,将抛弃的第4行给显示

在这里插入图片描述
还可以加入详细的组合说明,指定indicator参数为True即可

在这里插入图片描述
单独设置只考虑左边数据或者只考虑右边数据

在这里插入图片描述

在这里插入图片描述

,排序操作

创建一个Dataframe

在这里插入图片描述
可以指定升序或者降序,并且还可以指定按照多个指标排序
首先对group列按照降序进行排列,在此基础上保持data列是升序排列,其中by参数用于设置要排序的列,ascending参数用于设置升降序

在这里插入图片描述

,缺失值处理

创建一组数据用乘法来创建一组有重复部分的数据

在这里插入图片描述
使用drop_duplicates()函数去掉多余的数据

在这里插入图片描述
只考虑某一列的重复情况,其他全部舍弃

在这里插入图片描述
直接指定新的列名或者使用assign()函数要往数据中添加新的列

在这里插入图片描述
数据处理过程中经常会遇到缺失值,Pandas中一般用NaN来表示(Not a Number

在这里插入图片描述
通过isnull()函数判断所有缺失情况

在这里插入图片描述
输出某列是否存在缺失值,其中.any()函数相当于只要有一个缺失值就意味着存在缺失情况

可以自己指定检查的维度

缺失值填充,fillna()函数可以对缺失值进行填充,这里只选择一个数值,实际中更常使用的是均值、中位数,具体情况具体分析

在这里插入图片描述

,apply自定义函数

首先定义一个映射函数

在这里插入图片描述
apply()函数使用,需要先写好要执行操作的函数,接下来直接调用即可,相当于对数据中所有样本都执行这样的操作

在这里插入图片描述
使用泰坦尼克号旅客信息运用apply()函数
统计每列的缺失值个数,写好自定义函数之后依旧调用apply()函数,这样每列特征的缺失值个数就统计出来了

统计一下每一位乘客是否是成年人

,时间操作

创建一个时间戳

知道数据的采集时间,并且每条数据都是固定时间间隔保存

以时间特征为索引,可以将parse_dates参数设置为True
flowdata数据集

在这里插入图片描述
有了索引后,就可以用它来取数据

在这里插入图片描述
取2013年的数据
也用data[‘2012-01’:‘2012-03’]指定具体月份,或者更细致一些,在小时上继续进行判断
例如:data[(data.index.hour>8)&(data.index.hour<12)]

在这里插入图片描述
resample重采样
原始数据中每天都有好几条数据,统计每天的平均指标

在这里插入图片描述
按3天为一个周期进行统计

在这里插入图片描述
按月进行统计

在这里插入图片描述

,绘图操作

在这里插入图片描述
同时展示两个图表,用到子图

在这里插入图片描述
指定绘图的种类,例如条形图、散点图等

在这里插入图片描述

在这里插入图片描述
macrodata.csv下载链接

在这里插入图片描述

game_logs.csv数据集下载

,数值类型转换

读取一个稍大数据集,特征比较多,一共有161列,目标就是尽可能减少占用的内存

在这里插入图片描述
数据样本有171907个

deep表示要详细的展示当前数据所占用的内存
输出结果显示这份数据读取进来后占用859.4 MB内存,数据类型主要有3种
float64类型有77个特征,int64类型有6个特征,object类型有78个特征

计算一下各种类型平均占用内存
循环中会遍历3种类型,通过select_dtypes()函数选中属于当前类型的特征
计算其平均占用内存,最后转换成MB
很显然,float64类型和int64类型平均占用内存差不多,object类型占用的内存最多

接着,需要分类型对数据进行处理
首先处理一下数值型

输出结果分别打印了int8~int64可以表示的数值取值范围
int8和int16能表示的数值范围有点儿小,一般不用
int32看起来范围足够大了,基本任务都能满足
int64能表示的就更多了

将数据集中所有int64类型转换成int32类型

在这里插入图片描述

在这里插入图片描述
数据集所有数据类型都转换为int64时,int类型数据所占内存空间为7.87MB
向下转换之后,程序已经自动地选择了合适类型,int类型数据内存占有量为1.80MB
其中mem_usage()函数的主要功能就是计算传入数据的内存占用量

向下转换程序已经自动地选择了合适类型
所有数据类型都转换为float64时,float类型数据内存占用100.99MB
向下转换之后,float类型数据内存占有量为50.49MB
内存节约了正好一半
通常在数据集中float类型多一些,如果对其进行合适的向下转换,基本上能节省一半内存

,属性类型转换

object类型(字符串)占用内存最多,各列object类型的特征如下
count表示数据中每一列特征的样本个数(有些存在缺失值
unique表示不同属性值的个数(例如day_of_week列表示当前数据是星期几,所以只有7个不同的值;但是默认object类型会把出现的每一条样本数值都开辟一块内存区域,若星期一和星期二出现多次,它们只是一个字符串代表一种结果而已,共用一块内存就足够了。但是在object类型中却为每一条数据开辟了单独的一块内存

故可以把object类型转换成category类型

在这里插入图片描述
把object类型转换成category类型
其中只有7种编码方式

打印具体编码
无论打印多少条数据,其编码结果都不会超过7种,这就是category类型的特性

将object类型转换成category类型,看下所占用内存空间情况

    以上就是本篇文章【Pandas(数据分析处理库)---讲解】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/6445.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
云南网络营销软件哪个好?权威推荐助您快速选择
在数字化时代,网络营销软件成为了许多企业实现营销目标的重要工具。然而,市面上网络营销软件琳琅满目,选择一个适合自己的并不
宫崎骏的时代结束了
在《你想活出怎样的人生》之前,宫崎骏一直是著名的退休诈骗犯。七次退休又七次复出,年过八旬,创作欲还是旺盛到令人害怕。然而
个人大数据信用查询平台哪个更准确一些?蘑菇画像个人大数据信用报告查询平台更好用
个人大数据信用查询平台哪个更准确一些?蘑菇画像个人大数据信用报告查询平台更好用,个人大数据信用查询平台市面上还是比较多的
小红书关键词热度查询!国风大潮下,品牌怎么玩出花样、玩出水平?
国风,是当下年轻人钟爱的潮流。汉服穿搭、文物手办、国潮仿妆……频频出圈。“民族的就是世界的”,国风的影响力可谓深远,一说
app推广接单发布平台哪个好?怎么领取任务赚钱?
最近几年,随着互联网的快速发展,利用网络兼职的赚钱方式也呈现越来越火,非常受大众欢迎的趋势。而且其种类也非常多:微商、社
【可打印】文学常识常考100题汇总,初中生练一练!(部编版初中语文)
关注本公众号,私信发送数字:2493,领取电子打印版文学常识1、成语“万事俱备,只欠东风”是根据《三国演义》________ (战役)
“迎旅发大会 游美丽望城”望城首届文旅短视频大赛,最高3万奖励等你来拿!
湘江水浩浩奔腾,流淌沧桑巨变。铜官窑静穆肃然,在这里诉说着望城的厚重历史,流传着“君生我未生,我生君已老”凄美爱情故事;落日
mysql导入大txt文件怎么打开_mysql怎么导入txt文件?
有时候我们在使用mysql数据库的时候,想导入txt文本文档,要怎么操作呢?下面本篇文章就来给大家介绍一下方法
寸头抖音短视频教程_人开始衰老的迹象是什么
岁月不饶人,我才50出头,可是许多衰老迹象已经越来越明显,惹得中医闺蜜笑话这样的我。1、觉得右后背和肩膀疼,出现“五十肩”
什么是网站页脚:以及最佳页脚设计示例
主体内容外,网站还包括页眉和页脚,用于帮助访问者的特定目的。由于我们认为网站页脚设计同样重要,我们整理了10个最佳免费网站
本企业新闻

点击拨打: