千家信息网

Pandas的功能及用法

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容介绍了"Pandas的功能及用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 重要前言
千家信息网最后更新 2025年01月31日Pandas的功能及用法

本篇内容介绍了"Pandas的功能及用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 重要前言

做数据分析发现数据分析技能入门阶段存在一个普遍性的问题,很多凭着兴趣入坑的同学,都能够很快熟悉Python基础语法,然后不约而同的一头扎进《利用Python进行数据分析》这本经典之中,硬着头皮啃完之后,好像自己什么都会了一点,然而实际操作起来既不知从何操起,又漏洞百出。

2. pandas 简介

江湖上流传着这么一句话--分析不识潘大师(PANDAS),纵是老手也枉然

Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我们后期分析案例的神器。它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表而Series就是表中的某一列,后面学习和用到的所有Pandas骚操作,都是基于这些表和列进行的操作(关于Pandas和Excel的形象关系,推荐张俊红写的《对比EXCEL,轻松学习Python数据分析》)。

这里有一点需要强调,Pandas和Excel、SQL相比,只是调用和处理数据的方式变了,核心都是对源数据进行一系列的处理,在正式处理之前,更重要的是谋定而后动,明确分析的意义,理清分析思路之后再处理和分析数据,往往事半功倍

3. 创建、读取、存储

1、创建

在Pandas中我们想要构造下面这一张表应该如何操作呢?

别忘了,第一步一定是先导入我们的库--import pandas as pd

构造DataFrame最常用的方式是字典+列表,语句很简单,先是字典外括,然后依次打出每一列标题及其对应的列值(此处一定要用列表),这里列的顺序并不重要:

import pandas as pdimport numpy as npprint(pd.__version__)df1 = pd.DataFrame({         '工资':[5000,7000,9000,8500],'绩效分':[60,84,98,91],'备注':['不及格','良好','最佳','优秀']},   index=['老王','小刘','小赵','老龚'])df1



左边是jupyter notebookdataframe的样子,如果对应到excel中,他就是右边表格的样子,通过改变columns,index和values的值来控制数据。
PS: 如果我们在创建时不指定index,系统会自动生成从0开始的索引。

2、 读取

更多时候,我们是把相关文件数据直接读进PANDAS中进行操作,这里介绍两种非常接近的读取方式,一种是CSV格式的文件,一种是EXCEL格式(.xlsx和xls后缀)的文件。
读取csv文件:

df2 = pd.read_csv("/home/kg/liujinjie/phonebook/流量练习数据.csv",engine="python")df2.head()


engine是使用的分析引擎,读取csv文件一般指定python避免中文和编码造成的报错。而读取Excel文件,则是一样的味道:

df2 = pd.read_exce.("/home/kg/liujinjie/phonebook/流量练习数据.xls")df2.head()


非常easy,其实read_csv和read_excel还有一些参数,比如header、sep、names等等,大家可以做额外了解。实践中数据源的格式一般都是比较规整的,更多情况是直接读取。

3、存储

存储起来一样非常简单粗暴且相似:

df2.to_csv("/home/kg/liujinjie/phonebook/sowhat.csv")df3.to_excel("/home/kg/liujinjie/phonebook/sowhat.xlsx")

4、数据源

流量来源来源明细访客数支付转化率客单价
一级-A351889.98%54.3
一级-B2846711.27%99.93
一级-C137472.54%0.08
一级-D51832.47%37.15
一级-E43614.31%91.73
一级-F406311.57%65.09
一级-G212210.27%86.45
一级-H20417.06%44.07
一级-I199116.52%104.57
一级-J19815.75%75.93
一级-K195814.71%85.03
一级-L178013.15%98.87
一级-M14471.04%80.07
二级-A3904811.60%91.91
二级-B33167.09%66.28
二级-C20435.04%41.91
三级-A231409.69%83.75
三级-B1481320.14%82.97
四级-A2161.85%94.25
四级-B310.00%
四级-C170.00%
四级-D30.00%

4. 快速认识数据

这里以我们的案例数据为例,迅速熟悉查看N行,数据格式概览以及基础统计数据。

1、查看数据,掐头看尾

很多时候我们想要对数据内容做一个总览,用df.head()函数直接可以查看默认的前5行,与之对应,df.tail()就可以查看数据尾部的5行数据,这两个参数内可以传入一个数值来控制查看的行数,例如df.head(10)表示查看前10行数据。

2、 格式查看

df.info()帮助我们一步摸清各列数据的类型,以及缺失情况:

3、统计信息概览

df.describe() 快速计算数值型数据的关键统计指标,像平均数、中位数、标准差等等。

我们本来有5列数据,为什么返回结果只有两列?那是因为这个操作只针对数值型的列。其中count是统计每一列的有多少个非空数值,mean、std、min、max对应的分别是该列的均值、标准差、最小值和最大值,25%、50%、75%对应的则是分位数。

5. 列的基本处理方式

这里,我们采用SQL四大法宝的逻辑来简单梳理针对列的基本处理方式--增、删、选、改

温馨提示:使用Pandas时,尽量避免用行或者EXCEL操作单元格的思维来处理数据,要逐渐养成一种列向思维,每一列是同宗同源,处理起来是嗖嗖的快,just like HBase。

1、增

增加一列,用df['新列名'] = 新列值的形式,在原数据基础上赋值即可:

2、删:

我们用drop函数制定删除对应的列,axis = 1表示针对列的操作inplace为True,则直接在源数据上进行修改,否则源数据会保持原样。

3、选:

想要选取某一列怎么办?df['列名']即可:
选取多列呢?需要用列表来传递:df[['第一列','第二列','第三列'…]]

4、 改:

好事多磨,复杂的针对特定条件和行列的筛选、修改,放在后面结合案例细讲,这里只讲一下最简单的更改:df['旧列名'] = 某个值或者某列值,就完成了对原列数值的修改。

6.常用数据类型及操作

1、字符串

字符串类型是最常用的格式之一了,Pandas中字符串的操作和原生字符串操作几乎一毛一样,唯一不同的是需要在操作前加上.str

提示:我们最初用df2.info()查看数据类型时,非数值型的列都返回的是object格式,和str类型深层机制上的区别就不展开了,在常规实际应用中,我们可以先理解为object对应的就是str格式int64对应的就是int格式float64对应的就是float格式即可

在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个-符号,又丑又无用,所以把他给拿掉:

一般来说清洗之后的列是要替换掉原来列的:

2、 数值型

数值型数据,常见的操作是计算,分为与单个值的运算,长度相等列的运算。以案例数据为例,源数据访客数我们是知道的,现在想把所有渠道的访客都加上10000,怎么操作呢?

只需要选中访客数所在列,然后加上10000即可,pandas自动将10000和每一行数值相加,针对单个值的其他运算(减乘除)也是如此。

列之间的运算语句也非常简洁。源数据是包含了访客数、转化率和客单价,而实际工作中我们对每个渠道贡献的销售额更感兴趣。(销售额 = 访客数 X 转化率 X 客单价)

对应操作语句:df['销售额'] = df['访客数'] * df['转化率'] * df['客单价']

但为什么疯狂报错?

导致报错的原因,是数值型数据非数值型数据相互计算导致的。PANDAS把带%符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据:

要注意的是,这样操作,把9.98%变成了9.98,所以我们还需要让支付转化率除以100,来还原百分数的真实数值:

然后,再用三个指标相乘计算销售额:

3、时间类型

PANDAS中时间序列相关的水非常深,这里只对日常中最基础的时间格式进行讲解,对时间序列感兴趣的同学可以自行查阅相关资料,深入了解。

以案例数据为例,我们这些渠道数据,是在2019年8月2日提取的,后面可能涉及到其他日期的渠道数据,所以需要加一列时间予以区分,在EXCEL中常用的时间格式是2019-8-3或者2019/8/3,我们用PANDAS来实现一下:
在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串2019-8-3赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式

转换成时间格式(这里是datetime64)之后,我们可以用处理时间的思路高效处理这些数据,比如,我现在想知道提取数据这一天离年末还有多少天('2020-12-31'),直接做减法(该函数接受时间格式的字符串序列,也接受单个字符串):
最后我们一起快速回顾下:

第一步,我们先了解PANDAS到底是个什么东西
第二步,学习如何构建读入存储数据。
第三步,拿到数据之后,怎么样快速查看数据
第四步,对数据有了基础了解,就可以进行简单的增删选改了。
第五步,在了解基础操作之后,对Pandas中基础数据类型进行了初步照面

"Pandas的功能及用法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 格式 数值 字符 字符串 分析 处理 类型 时间 基础 文件 案例 访客 转化率 实际 就是 数据分析 方式 函数 单价 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 图腾 服务器 机柜 网络安全手抄报内容大全字多 门户网络安全保卫工作汇报 数据库点击标题实现排序 十四五规划数字经济网络安全 数据库面试有几种锁 怎么检查代服务器设置 外贸搜索软件开发 it软件开发公司排名 美篇用的什么网络技术 虹口区常规软件开发服务收费 怎样将数据库表结构导出 软件开发分布式模式 淮安网络安全资质申请哪家好 服务器里面成员也可以使用的指令 租房的网络安全吗 软件开发每年维护费多少 服务器安全白名单怎么设置 计耸机技术网络安全专业 来宾二中老师网络安全课 锐捷云课堂服务器命令 怎么改数据库的编码格式 成都微址网络技术有限公司 苹果服务器连接不上id qq怎么设置网络安全 欧盟网络安全局英文缩写 坦克世界手游经典服务器 湖北戴尔服务器定制费用 海淀区质量软件开发平台 软件开发项目绩效计提比例
0