pandas如何使用它?不知道朋友看看今天的小边pandas教程分享吧!
1、pandas简介:
pandas是python data analysis组合缩写,是的python中基于numpy和matplotlib的第三方数据分析库,与后两者共同构成了python数据分析的基础工具包,享有数分三剑客之名 。
2、pandas数据结构:
pandas有两种核心数据结构,即一维结构series和二维的dataframe,两者可分别视为numpy相应的标签信息是在一维数组和二维数组的基础上添加的 。因此,可以从两个角度理解series和dataframe:
series和dataframe它们是一维和二维数组,因为它们是数组,所以numpy这两种数据结构,包括数据创建、切片访问、通括数据创建、切片访问、通信函数、广播机制等
series它是一个带有标签的一维数组,因此也可以被视为类字典结构:标签是key,取值是value;而dataframe可视为嵌套字典结构,其中列名为key,每一列的series是value 。所以从这个角度来看,pandas一种灵活的数据创建方法是通过字典或嵌套字典,自然衍生出适series和dataframe类似字典访问的接口,即通过loc索引访问 。
3、 数据读写:
pandas数据读写支持大部分主流文件格式,常用格式和接口为:
主要包括文本文件csv和txt两种等,相应的界面是read_csv()和to_csv()分别用于读写数据
Excel文件,包括xls和xlsx支持两种格式,调用底层xlwt和xlrd进行excel相应的接口是文件操作read_excel()和to_excel()
SQL文件支持大多数主流关系数据库,如MySQL,需要相应的数据库模块支持,相应的接口是read_sql()和to_sql()
此外,pandas还支持html、json读写操作等文件格式 。
4、数据访问:
series和dataframe兼具numpy数组和字典的结构特征,因此数据访问从这两个方面开始 。同时,也支持bool数据访问和筛选索引 。
[ ],这是一个非常便捷的访问方式,不过需区分series和dataframe理解两种数据结构:
series:可以用标签或数字索引访问单个元素,也可以用相应的切片访问多个值,因为只有一维信息,自然没有悬念
dataframe:如果您不能访问单个元素,您只能返回一列、多列或多行:单值或多值(由多个列组成的列表)按列查询 。当单值访问中没有列名歧义时,您也可以直接使用属性符号" . "访问 。以切片的形式进行查询,区分数字切片和标签切片:输入数字索引切片时,类似于普通列表切片;输入标签切片时,执行范围查询(即标签列中不存在切片的第一和最终值),包括两端标签结果,不匹配线返回空,但要求标签切片类型与索引类型一致 。例如,当标签列类型(可通过时df.index.dtype查看)为时间类型时,如果使用不能隐式转换为时间的字符串作为索引切片,则会引起报错 。
5、数据处理:
pandas当然,最强大的功能是数据处理和分析,可以独立完成数据分析前的大部分数据预处理需求 。简单地说,它可以分为以下几个方面:
数据清洗
数据处理中的清洗工作主要包括空值、重复值和异常值的处理:
空值
判断空值,isna或isnull,两者的等价用于判断一个series或dataframe各元素值是否为空bool结果 。注意空值的定义:即None或numpy.nan空字符串、空列表等不属于空值;类似地,notna和notnull判断是否非空
填充空值,fillna,按照一定的策略填充空值,如常数填充、前/后填充等,也可以通过inplace确定参数是否本地变更
删除空值,dropna,可通过删除存在空值的整行或整列axis还包括设置inplace参数
重复值
检测重复值,duplicated,检查各行是否重复,返回一行索引bool结果,可以通过keep第一行/最后一行/无保留的参数设置keep=first这意味着当有多行重复时,第一行被认为是合法的,可以保留
删除重复值,drop_duplicates,按行检测和删除重复记录,也可以通过keep参数设置保留项 。由于该方法默认为检测,如果需要按列删除,可以在执行该方法之前转移
异常值,判断异常值的标准依赖于具体的分析数据,所以这里只有两种可选的方法来处理异常值
删除,drop,在特定轴线上删除一个或多个接受参数的记录axis参数设置是按行删除还是按列删除
替换,replace,功能非常强大,对series或dataframe每个元素都可以按条件更换,正则表达功能也可以打开
数值计算
由于pandas是在numpy因此,numpy常用数值计算操作pandas中也适用:
通函数ufunc,就像操作标量一样series或dataframe所有元素都执行相同的操作,这与numpy的特性是一致的,例如前文提到的replace函数本质上可以算是通函数 。以下是数据表中逐元素求平方 。
广播机制,即当维度或形状不匹配时,在一定条件下计算 。pandas它是一个带有标签的数组,所以它会在广播过程中自动匹配标签,而不是类似的numpy那种纯粹按顺序广播 。例如,在下面的例子中执行一个dataframe和series虽然维度不同,尺寸不同,标签顺序不一致,但仍可根据标签匹配得到预期结果
字符串向量化,即数据类型为字符串格式的一列向量化字符串操作,本质上是调用series.str属性系列接口,完成相应的字符串操作 。特别强大的是,除了常用的字符串操作方法外,str属性接口中还集成了正则表达式的大部分功能,这使得pandas在处理字符串列时,它既高效又强大 。例如,下面的代码可以用来统计每个句子中单词的数量
时间类型向量化操作,如字符串,在pandas另一个得到"优待"数据类型是时间类型,如字符串列str属性调用字符串接口相同,可以使用时间类型列dt属性调用相应的接口,在处理时间类型时会非常有效 。
数据转换
pandas它还提供了更强大的数据转换方法
map,适用于series对象,功能和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中等等值连接
【pandas怎么使用? pandas教程】join,语法和功能merge一致,不同的是merge既可以用pandas也可以使用接口调用dataframe调用对象接口join则只适用于dataframe对象接口
append,concat执行axis=0简化接口,类似列表append函数一样
实际上,concat通过设置axis=1也可实现与merge两者的区别在于:merge允许重复连接字段,类似于一对多或多对一连接,此时将产生笛卡尔积累结果;concat不允许重复,只能一对一拼接 。
以上是小编今天的分享 。我希望它能帮助你 。
- 香菇炖鸡的做法_健康频道 活鸡怎么处理干净
- 莲藕鲈鱼汤的做法有哪些 白莲藕怎么保存方法
- 碗上标签撕后还有胶的去除方法 碗上标签撕后还有胶怎么办
- 双面羊绒保养方法_家居频道 双面羊绒怎么洗
- 卷纸的使用方法及注意事项 卷纸和抽纸有什么区别
- 玻璃隔热膜怎么贴 玻璃隔热膜有什么作用
- 抽水马桶突然不上水怎么办 马桶常见故障该怎么处理
- 马桶圈怎么套 马桶圈选购技巧有哪些
- 怎么分辨干皮还是油皮 混油皮和混干皮的区别
- 原神风神杂烩菜的制作办法是使用4个胡萝卜,4个土豆和4个洋葱 原神风神杂烩菜怎么做