易商讯
当前位置: 首页 » 资讯 » 知识 » 正文

pandas教程(python pandas教程)

放大字体  缩小字体 发布日期:2023-11-30 11:15:16
导读

1、pandas简介:pandas是python+data+analysis的组合缩写,是python中基于numpy和matplotlib的第三方数据分析库,...

pandas教程, 1. Introduction to Panda:

Pandas是python数据分析的组合缩写,是python中基于numpy和matplotlib的第三方数据分析库,与后两者共同构成了python数据分析的基础工具包。

享三剑客之名。

2.熊猫数据结构:

熊猫的核心数据结构有两种,一维数列和二维dataframe,可以看作是分别在numpy一维数组和二维数组的基础上增加了相应的标签信息。正因为如此,

Series和dataframe可以从两个角度来理解:

Series和dataframe分别是一维和二维数组。因为是数组,所以numpy中数组的用法基本上可以直接应用到这两种数据结构上,包括数据创建、切片访问、通用函数、广播机制等等。

Series是带标签的一维数组,所以也可以看作是类字典结构:标签是键,值是值;Dataframe可以看作是一个嵌套的字典结构,其中列名是键,每列的系列是值。

所以从这个角度来说,创建pandas数据的一个灵活的方式就是通过字典或者嵌套字典,同时自然衍生出适合series和dataframe的类字典接口,也就是通过loc索引访问。

python pandas教程

3、数据读写:

Pandas支持读写大多数主流文件格式的数据。常见的格式和接口有:

文本文件主要有csv和txt,对应的接口有read_csv()和to_csv(),分别用来读写数据。

支持Excel文件,包括xls和xlsx格式。底层调用xlwt和xlrd操作Excel文件,对应的接口是read_excel()和to_excel()。

SQL文件,支持大多数主流的关系数据库,比如MySQL,需要相应的数据库模块的支持,相应的接口有read_sql()和to_sql()。

此外,熊猫还支持html、json等文件格式的读写。

4.数据访问:

Series和dataframe具有numpy数组和字典的结构特征,所以数据访问是从这两个方面入手的。同时,还支持bool索引进行数据访问和过滤。

[],这是一种非常方便的访问方式,但有必要区分series和dataframe:

Series:可以使用标签或数字索引访问单个元素,也可以使用相应的切片访问多个值。因为只有一维信息,所以没有悬念。

Dataframe:不能访问单个元素,只能返回一列、多列或多行:单值或多值(多个列名的列表)访问时可以按列查询,单值访问时列名没有歧义时可以用属性符号直接访问。以切片形式访问时,按行查询,

还区分了数字切片和标签切片:输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即切片的第一个和最后一个值不需要存在于标签列中),并且包括两端标签的结果。如果没有匹配的行,则返回空白。

但是,标签切片类型需要与索引类型一致。例如,当标签列类型(可通过df.index.dtype查看)为时间类型时,如果将不能隐式转换为时间的字符串用作索引片,则会引发错误。

python pandas教程

5、数据处理:

熊猫最强大的功能当然是数据处理和分析,可以独立完成数据分析前的大部分数据预处理需求。简单概括起来,可以分为以下几个方面:

数据清理

数据处理中的清理主要包括空值、重复值和异常值的处理:

空值

判断空值isna或isnull的bool结果,这两个值是等价的,用于判断序列或数据帧的每个元素值是否为空。注意空值的定义:即None或numpy.nan为空值。

空字符串、空列表等。不是空值;同样,notna和notnull用于确定它是否为非空。

填充空值。按照一定的策略填充空值,如常量填充、向前/向后填充等。也可以通过inplace参数确定是否在本地更改它。

删除空值,dropna,删除整行或整列的空值,可以通过axis设置,包括inplace参数。

重复值

检测重复值,duplicate,检测每行是否重复,返回一行索引的bool结果。可以通过keep参数设置首行/末行/无预留。例如,keep=first意味着当有多个重复行时,

第一行被认为是合法的,可以保留。

删除重复值,drop_duplicates,逐行检测并删除重复记录,或者通过keep参数设置保留项。默认情况下,该方法按行检测,因此如果需要按列删除,可以在执行该方法之前对其进行转置。

离群值,判断离群值的标准取决于具体的分析数据,这里只提供两种备选的处理离群值的方法。

Delete、drop和accept参数用于删除特定轴上的一条或多条记录。可以通过轴参数设置是按行删除还是按列删除。

Replace,replace,非常强大的功能,对序列或数据帧中的每个元素进行条件替换操作,还开启了正则表达式功能。

数值计算

因为pandas是在numpy的基础上实现的,所以numpy的常见数值计算操作也适用于pandas:

通用函数ufunc可以像操作标量一样对所有串行或数据帧的元素执行相同的操作,这与numpy的特性是一致的。比如上面提到的replace函数,本质上可以看作是一个通用函数。

按如下方式逐个元素对数据表求平方。

广播机制,即当尺寸或形状不匹配时,会根据一定条件广播后计算。因为熊猫是带标签的数组,所以在播放过程中会根据标签匹配自动播放,而不是像numpy那样纯顺序播放。举个例子,

在下面的示例中,dataframe和series相乘。虽然两者的维度和大小不同,标签顺序不一致,但是通过标签匹配仍然可以得到预期的结果。

字符串矢量化,即对数据类型为字符串格式的列执行矢量化的字符串操作。本质上就是调用series.str属性的series接口来完成相应的字符串操作。特别强大的是,除了常用的字符串操作方法,

str属性接口还集成了正则表达式的大部分功能,这使得pandas在处理字符串列时高效而强大。例如,下面的代码可以用来计算每个句子的字数。

与字符串一样,时间类型向量化操作是在pandas中得到优先处理的另一种数据类型。就像字符串列可以用str属性调用字符串接口一样,时间类型列可以用dt属性调用相应的接口,在处理时间类型的时候会非常有效。

python pandas教程

数据转换

pandas还提供了更为强大的数据转换方法

map,适用于series对python pandas教程象,功能与python中的普通map函数类似,即对给定序列中的每个值执行相同的映射操作,

不同的是series中的map接口的映射方式既可以是一个函数,也可以是一个字典

apply,既适用于series对象也适用于dataframe对象,

但对二者处理的粒度是不一样的:apply应用于series时是逐元素执行函数操作;apply应用于dataframe时是逐行或者逐列执行函数操作(通过axis参数设置对行还是对列,默认是行),

仅接收函数作为参数

applymap,仅适用于dataframe对象,且是对dataframe中的每个元素执行函数操作,从这个角度讲,与replace类似,applymap可看作是dataframe对象的通函数。

合并与拼接

pandas中又一个重量级数据处理功能是对多个dataframe进行合并与拼接,对应SQL中两个非常重要的操作:union和join。pandas完成这两个功能主要依赖以下函数:

concat,与numpy中的concatenate类似,但功能更为强大,可通过一个axis参数设置是横向或者拼接,要求非拼接轴向标签唯一(例如沿着行进行拼接时,要求每个df内部列名是唯一的,

但两个df间可以重复,毕竟有相同列才有拼接的实际意义)

merge,完全类似于SQL中的join语法,仅支持横向拼接,通过设置连接字段,实现对同一记录的不同列信息连接,支持inner、left、right和outer4种连接方式,

但只能实现SQL中的等值连接

join,语法和功能与merge一致,不同的是merge既可以用pandas接口调用,也可以用dataframe对象接口调用,而join则只适用于dataframe对象接口

append,concat执行axis=0时的一个简化接口,类似列表的append函数一样

实际上,concat通过设置axis=1也可实现与merge类似的效果,二者的区别在于:merge允许连接字段重复,类似一对多或者多对一连接,此时将产生笛卡尔积结果;而concat则不允许重复,

仅能一对一拼接。

pandas教程,以上就是本文为您收集整理的pandas教程最新内容,希望能帮到您!更多相关内容欢迎关注。


声明:易商讯尊重创作版权。本文信息搜集、整理自互联网,若有来源标记错误或侵犯您的合法权益,请联系我们。我们将及时纠正并删除相关讯息,非常感谢!

关键词: pandas教程
 
(文/小编)
免责声明
• 
本文pandas教程(python pandas教程)链接:http://www.esxun.cn/news/407934.html 。本文仅代表作者个人观点,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们,我们将在24小时内处理完毕。如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
 

Copyright © www.esxun.cn 易商讯ALL Right Reserved


冀ICP备2023038169号-3