青岛做外贸网站建设平面设计免费模板网站

news/2025/9/24 3:49:13/文章来源:
青岛做外贸网站建设,平面设计免费模板网站,区域门户网站源码,可以做单的猎头网站Python中的pandas模块进行数据分析。 接下来pandas介绍中将学习到如下8块内容#xff1a;1、数据结构简介#xff1a;DataFrame和Series2、数据索引index3、利用pandas查询数据4、利用pandas的DataFrames进行统计分析5、利用pandas实现SQL操作6、利用pandas进行缺失值的处理7…Python中的pandas模块进行数据分析。 接下来pandas介绍中将学习到如下8块内容1、数据结构简介DataFrame和Series2、数据索引index3、利用pandas查询数据4、利用pandas的DataFrames进行统计分析5、利用pandas实现SQL操作6、利用pandas进行缺失值的处理7、利用pandas实现Excel的数据透视表功能8、多层索引的使用 一、数据结构介绍 在pandas中有两类非常重要的数据结构即序列Series和数据框DataFrame。Series类似于numpy中的一维数组除了通吃一维数组可用的函数或方法而且其可通过索引标签的方式获取数据还具有索引的自动对齐功能DataFrame类似于numpy中的二维数组同样可以通用numpy数组的函数和方法而且还具有其他灵活应用后续会介绍到。 1、Series的创建 序列的创建主要有三种方式 1通过一维数组创建序列 import numpy as np, pandas as pdarr1  np.arange(10)arr1type(arr1)s1  pd.Series(arr1)s1type(s1) 2通过字典的方式创建序列 dic1  {a:10,b:20,c:30,d:40,e:50}dic1type(dic1)s2  pd.Series(dic1)s2type(s2) 3通过DataFrame中的某一行或某一列创建序列 这部分内容我们放在后面讲因为下面就开始将DataFrame的创建。 2、DataFrame的创建 数据框的创建主要有三种方式 1通过二维数组创建数据框 arr2  np.array(np.arange(12)).reshape(4,3)arr2type(arr2)df1  pd.DataFrame(arr2)df1type(df1) 2通过字典的方式创建数据框 以下以两种字典来创建数据框一个是字典列表一个是嵌套字典。 dic2  {a:[1,2,3,4],b:[5,6,7,8],c:[9,10,11,12],d:[13,14,15,16]}dic2type(dic2)df2  pd.DataFrame(dic2)df2type(df2)dic3  {one:{a:1,b:2,c:3,d:4},two:{a:5,b:6,c:7,d:8},three:{a:9,b:10,c:11,d:12}}dic3type(dic3)df3  pd.DataFrame(dic3)df3type(df3) 3通过数据框的方式创建数据框 df4  df3[[one,three]]df4type(df4)s3  df3[one]s3type(s3) 二、数据索引index 细致的朋友可能会发现一个现象不论是序列也好还是数据框也好对象的最左边总有一个非原始数据对象这个是什么呢不错就是我们接下来要介绍的索引。在我看来序列或数据框的索引有两大用处一个是通过索引值或索引标签获取目标数据另一个是通过索引可以使序列或数据框的计算、操作实现自动化对齐下面我们就来看看这两个功能的应用。 1、通过索引值或索引标签获取数据 s4  pd.Series(np.array([1,1,2,3,5,8]))s4 如果不给序列一个指定的索引值则序列自动生成一个从0开始的自增索引。可以通过index查看序列的索引 s4.index 现在我们为序列设定一个自定义的索引值 s4.index  [a,b,c,d,e,f]s4 序列有了索引就可以通过索引值或索引标签进行数据的获取 s4[3]s4[e]s4[[1,3,5]]s4[[a,b,d,f]]s4[:4]s4[c:]s4[b:e] 千万注意如果通过索引标签获取数据的话末端标签所对应的值是可以返回的在一维数组中就无法通过索引标签获取数据这也是序列不同于一维数组的一个方面。 2、自动化对齐 如果有两个序列需要对这两个序列进行算术运算这时索引的存在就体现的它的价值了—自动化对齐. s5  pd.Series(np.array([10,15,20,30,55,80]),index  [a,b,c,d,e,f])s5s6  pd.Series(np.array([12,11,13,15,14,16]),index  [a,c,g,b,d,f])s6s5  s6s5/s6 由于s5中没有对应的g索引s6中没有对应的e索引所以数据的运算会产生两个缺失值NaN。注意这里的算术结果就实现了两个序列索引的自动对齐而非简单的将两个序列加总或相除。对于数据框的对齐不仅仅是行索引的自动对齐同时也会自动对齐列索引变量名 数据框中同样有索引而且数据框是二维数组的推广所以其不仅有行索引而且还存在列索引关于数据框中的索引相比于序列的应用要强大的多这部分内容将放在数据查询中讲解。 三、利用pandas查询数据 这里的查询数据相当于R语言里的subset功能可以通过布尔索引有针对的选取原数据的子集、指定行、指定列等。我们先导入一个student数据集 student  pd.io.parsers.read_csv(C:\\Users\\admin\\Desktop\\student.csv) 查询数据的前5行或末尾5行 student.head()student.tail() 查询指定的行 student.ix[[0,2,4,5,7]] #这里的ix索引标签函数必须是中括号[] 查询指定的列 student[[Name,Height,Weight]].head() #如果多个列的话必须使用双重中括号 也可以通过ix索引标签查询指定的列 student.ix[:,[Name,Height,Weight]].head() 查询指定的行和列 student.ix[[0,2,4,5,7],[Name,Height,Weight]].head() 以上是从行或列的角度查询数据的子集现在我们来看看如何通过布尔索引实现数据的子集查询。查询所有女生的信息 student[student[Sex]F] 查询出所有12岁以上的女生信息 student[(student[Sex]F)  (student[Age]12)] 查询出所有12岁以上的女生姓名、身高和体重 student[(student[Sex]F)  (student[Age]12)][[Name,Height,Weight]] 上面的查询逻辑其实非常的简单需要注意的是如果是多个条件的查询必须在且或者|或的两端条件用括号括起来。 四、统计分析 pandas模块为我们提供了非常多的描述性统计分析的指标函数如总和、均值、最小值、最大值等我们来具体看看这些函数首先随机生成三组数据 np.random.seed(1234)d1  pd.Series(2*np.random.normal(size  100)3)d2  np.random.f(2,4,size  100)d3  np.random.randint(1,100,size  100)d1.count() #非空元素计算d1.min() #最小值d1.max() #最大值d1.idxmin() #最小值的位置类似于R中的which.min函数d1.idxmax() #最大值的位置类似于R中的which.max函数d1.quantile(0.1) #10%分位数d1.sum() #求和d1.mean() #均值d1.median() #中位数d1.mode() #众数d1.var() #方差d1.std() #标准差d1.mad() #平均绝对偏差d1.skew() #偏度d1.kurt() #峰度d1.describe() #一次性输出多个描述性统计指标 必须注意的是descirbe方法只能针对序列或数据框一维数组是没有这个方法的 这里自定义一个函数将这些统计描述指标全部汇总到一起: def stats(x):return pd.Series([x.count(),x.min(),x.idxmin(),x.quantile(.25),x.median(),x.quantile(.75),x.mean(),x.max(),x.idxmax(),x.mad(),x.var(),x.std(),x.skew(),x.kurt()],index  [Count,Min,Whicn_Min,Q1,Median,Q3,Mean,Max,Which_Max,Mad,Var,Std,Skew,Kurt])stats(d1) 在实际的工作中我们可能需要处理的是一系列的数值型数据框如何将这个函数应用到数据框中的每一列呢可以使用apply函数这个非常类似于R中的apply的应用方法。将之前创建的d1,d2,d3数据构建数据框: df  pd.DataFrame(np.array([d1,d2,d3]).T,columns[x1,x2,x3])df.head()df.apply(stats) 非常完美就这样很简单的创建了数值型数据的统计性描述。如果是离散型数据呢就不能用这个统计口径了我们需要统计离散变量的观测数、唯一值个数、众数水平及个数。你只需要使用describe方法就可以实现这样的统计了。 student[Sex].describe() 除以上的简单描述性统计之外还提供了连续变量的相关系数corr和协方差矩阵cov的求解这个跟R语言是一致的用法。 df.corr() 关于相关系数的计算可以调用pearson方法或kendell方法或spearman方法默认使用pearson方法。 df.corr(spearman) 如果只想关注某一个变量与其余变量的相关系数的话可以使用corrwith,如下方只关心x1与其余变量的相关系数: df.corrwith(df[x1]) 数值型变量间的协方差矩阵 df.cov()五、类似于SQL的操作在SQL中常见的操作主要是增、删、改、查几个动作那么pandas能否实现对数据的这几项操作呢答案是Of Course!增添加新行或增加新列In [99]: dic  {Name:[LiuShunxiang,Zhangshan],...: Sex:[M,F],Age:[27,23],...: Height:[165.7,167.2],Weight:[61,63]}In [100]: student2  pd.DataFrame(dic)In [101]: student2Out[101]:Age Height Name Sex Weight0 27 165.7 LiuShunxiang M 611 23 167.2 Zhangshan F 63现在将student2中的数据新增到student中可以通过concat函数实现注意到了吗在数据库中union必须要求两张表的列顺序一致而这里concat函数可以自动对齐两个数据框的变量新增列的话其实在pandas中就更简单了例如在student2中新增一列学生成绩对于新增的列没有赋值就会出现空NaN的形式。删删除表、观测行或变量列删除数据框student2,通过del命令实现该命令可以删除Python的所有对象。删除指定的行原数据中的第1,2,4,7行的数据已经被删除了。根据布尔索引删除行数据其实这个删除就是保留删除条件的反面数据例如删除所有14岁以下的学生删除指定的列我们发现不论是删除行还是删除列都可以通过drop方法实现只需要设定好删除的轴即可即调整drop方法中的axis参数。默认该参数为0表示删除行观测如果需要删除列变量则需设置为1。改修改原始记录的值如果发现表中的某些数据错误了如何更改原来的值呢我们试试结合布尔索引和赋值的方法例如发现student3中姓名为Liushunxiang的学生身高错了应该是173如何改呢这样就可以把原来的身高修改为现在的170了。看关于索引的操作非常灵活、方便吧就这样轻松搞定数据的更改。查有关数据查询部分上面已经介绍过下面重点讲讲聚合、排序和多表连接操作。聚合pandas模块中可以通过groupby()函数实现数据的聚合操作根据性别分组计算各组别中学生身高和体重的平均值如果不对原始数据作限制的话聚合函数会自动选择数值型数据进行聚合计算。如果不想对年龄计算平均值的话就需要剔除改变量groupby还可以使用多个分组变量例如根本年龄和性别分组计算身高与体重的平均值当然还可以对每个分组计算多个统计量是不是很简单只需一句就能完成SQL中的SELECT…FROM…GROUP BY…功能何乐而不为呢排序排序在日常的统计分析中还是比较常见的操作我们可以使用order、sort_index和sort_values实现序列和数据框的排序工作我们再试试降序排序的设置上面两个结果其实都是按值排序并且结果中都给出了警告信息即建议使用sort_values()函数进行按值排序。在数据框中一般都是按值排序例如多表连接:多表之间的连接也是非常常见的数据库操作连接分内连接和外连接在数据库语言中通过join关键字实现pandas我比较建议使用merger函数实现数据的各种连接操作。如下是构造一张学生的成绩表现在想把学生表student与学生成绩表score做一个关联该如何操作呢注意默认情况下merge函数实现的是两个表之间的内连接即返回两张表中共同部分的数据。可以通过how参数设置连接的方式left为左连接right为右连接outer为外连接。左连接实现的是保留student表中的所有信息同时将score表的信息与之配对能配多少配多少对于没有配对上的Name将会显示成绩为NaN。六、缺失值处理现实生活中的数据是非常杂乱的其中缺失值也是非常常见的对于缺失值的存在可能会影响到后期的数据分析或挖掘工作那么我们该如何处理这些缺失值呢常用的有三大类方法即删除法、填补法和插值法。删除法当数据中的某个变量大部分值都是缺失值可以考虑删除改变量当缺失值是随机分布的且缺失的数量并不是很多是也可以删除这些缺失的观测。替补法对于连续型变量如果变量的分布近似或就是正态分布的话可以用均值替代那些缺失值如果变量是有偏的可以使用中位数来代替那些缺失值对于离散型变量我们一般用众数去替换那些存在缺失的观测。插补法插补法是基于蒙特卡洛模拟法结合线性模型、广义线性模型、决策树等方法计算出来的预测值替换缺失值。我们这里就介绍简单的删除法和替补法这是一组含有缺失值的序列我们可以结合sum函数和isnull函数来检测数据中含有多少缺失值In [130]: sum(pd.isnull(s))Out[130]: 9直接删除缺失值默认情况下dropna会删除任何含有缺失值的行我们再构造一个数据框试试返回结果表明数据中只要含有缺失值NaN,该数据行就会被删除如果使用参数how’all’则表明只删除所有行为缺失值的观测。使用一个常量来填补缺失值可以使用fillna函数实现简单的填补工作1用0填补所有缺失值2)采用前项填充或后向填充3)使用常量填充不同的列4)用均值或中位数填充各自的列很显然在使用填充法时相对于常数填充或前项、后项填充使用各列的众数、均值或中位数填充要更加合理一点这也是工作中常用的一个快捷手段。七、数据透视表在Excel中有一个非常强大的功能就是数据透视表通过托拉拽的方式可以迅速的查看数据的聚合情况这里的聚合可以是计数、求和、均值、标准差等。pandas为我们提供了非常强大的函数pivot_table()该函数就是实现数据透视表功能的。对于上面所说的一些聚合函数可以通过参数aggfunc设定。我们先看看这个函数的语法和参数吧pivot_table(data,valuesNone,indexNone,columnsNone,aggfuncmean,fill_valueNone,marginsFalse,dropnaTrue,margins_nameAll)data需要进行数据透视表操作的数据框values指定需要聚合的字段index指定某些原始变量作为行索引columns指定哪些离散的分组变量aggfunc指定相应的聚合函数fill_value使用一个常数替代缺失值默认不替换margins是否进行行或列的汇总默认不汇总dropna默认所有观测为缺失的列margins_name默认行汇总或列汇总的名称为All我们仍然以student表为例来认识一下数据透视表pivot_table函数的用法对一个分组变量Sex一个数值变量Height作统计汇总对一个分组变量Sex两个数值变量Height,Weight作统计汇总对两个分组变量SexAge)两个数值变量Height,Weight作统计汇总很显然这样的结果并不像Excel中预期的那样该如何变成列联表的形式的很简单只需将结果进行非堆叠操作unstack即可看这样的结果是不是比上面那种看起来更舒服一点使用多个聚合函数有关更多数据透视表的操作可参考《Pandas透视表pivot_table详解》一文链接地址http://python.jobbole.com/81212/八、多层索引的使用最后我们再来讲讲pandas中的一个重要功能那就是多层索引。在序列中它可以实现在一个轴上拥有多个索引就类似于Excel中常见的这种形式对于这样的数据格式有什么好处呢pandas可以帮我们实现用低维度形式处理高维数数据这里举个例子也许你就能明白了对于这种多层次索引的序列取数据就显得非常简单了对于这种多层次索引的序列我们还可以非常方便的将其转换为数据框的形式以上针对的是序列的多层次索引数据框也同样有多层次的索引而且每条轴上都可以有这样的索引就类似于Excel中常见的这种形式我们不妨构造一个类似的高维数据框同样数据框中的多层索引也可以非常便捷的取出大块数据在数据框中使用多层索引可以将整个数据集控制在二维表结构中这对于数据重塑和基于分组的操作如数据透视表的生成比较有帮助。就拿student二维数据框为例我们构造一个多层索引数据集讲到这里我们关于pandas模块的学习基本完成其实在掌握了pandas这8个主要的应用方法就可以灵活的解决很多工作中的数据处理、统计分析等任务。有关更多的pandas介绍可参考pandas官方文档http://pandas.pydata.org/pandas-docs/version/0.17.0/whatsnew.html。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站用什么软件做上海怎么做seo推广

内容参考于:易道云信息技术研究院VIP课 上一个内容:显示游戏数据到小助手UI 码云地址(游戏窗口化助手 分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:852c339f5e4c103390b123e0eaed…

青岛手机建站模板企业免费邮箱注册申请

#计算器开发需求##1、实现加减乘除及拓号优先级解析#2、用户输入 1 - 2 * ( (60-30 (-40/5) * (9-2*5/3 7 /3*99/4*2998 10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,#必须自己解析里面的(),,-,*,/符号和公式,运算后得出结果,结果必须…

营销网站特点seo建站推广

(1)打开控制面板,进入【控制面板\系统和安全\Windows Defender 防火墙】 (2)点击左侧菜单【高级设置】,进入防火墙设置页面 (3)根据需要选择【入站规则】或者【出站规则】&#xff…

如何设立网站php做直播网站

文章目录 一.信息收集1.网段探测2.端口扫描3.版本服务探测4.漏扫5.目录扫描 二.漏洞利用1.分析信息2..fuzz工具 三.getshell四.提权六.nmap提权 一.信息收集 1.网段探测 因为使用的是VMware,靶机的IP地址是192.168.9.84 ┌──(root㉿kali)-[~/kali/vulnhub] └─…

做电商网站注意什么网页设计零基础学习课程

安装elasticsearch、kibana、IK分词器、扩展IK词典 后面还会安装kibana,这个会提供可视化界面方面学习。 需要注意的是elasticsearch和kibana版本一定要一样!!! 否则就像这样 elasticsearch 1、创建网络 因为我们还需要部署k…

东营网站建设优化如何把自己网站推广出去

文章目录 一、抽象类和接口总结总结补充说明主要区别 二、抽象类2.1 抽象类概述与声明2.2 抽象方法2.3 抽象类与抽象方法的使用 三、接口3.1 接口概述概述特征声明示例 3.2 接口的实现和继承说明示例 3.3 显式接口成员实现说明注意示例 一、抽象类和接口总结 总结 抽象类和接…

中国建设银行网站下载安装创新的南昌网站设计

接上文 RabbitMQ-主题模式 1 第四种交换机类型 header:它是根据头部信息来决定的,在我们发送的消息中是可以携带一些头部信息的,类似与HTTP,我们可以根据这些头部信息来决定路由到哪一个消息队列中。 修改配置类内容 Configuration public…

做信息网站需要什么邢台网站建设厂家

我按照pyecharts的官网案例学习flask,其中有段flask前后端分离的示例。官方教程:https://pyecharts.org/#/zh-cn...我用前后端分离展示柱状图、饼图都没问题,但把pyecharts的图形函数换成地理图表,就展示不出来,请问是…

专业彩票网站开发 APP开发网站开发与设计结课论文

阿里妹导读:从“叉手礼”、“水盆羊汤”、“酒晕妆”这些唐朝人的生活细节,到精美的坊间造型、充满意境的诗词歌赋,《长安十二时辰》不仅以缜密剧情赢得赞誉,更还原了一个真实的大唐长安。在精良制作之上,技术人如何让…

网页设计流程要怎么写冯宗耀seo教程

2023年天津市公共租赁住房网上登记流程图 小编为大家整理了天津市公共租赁住房网上登记流程,从登记到填写信息。 想要体验的朋友请看一下。 申请天津公共租赁住房时拒绝申报家庭情况会怎样? 天津市住房保障家庭在享受住房保障期间,如在应申…

制作高端网站公司排名全网自助下单最便宜

关于单引号和双引号 当输出的字符串内部没有单引号的时候,外面可以用单引号, 但是如果内部有了单引号,那么外部只能用双引号。 dict {Name: Zara, Age: 7, Class: First} print(dict) print (dict[Name]: , dict[Name]) print ("dic…

如何做像淘宝一样的网站在线短网址缩短工具

基于原生html5实现,不需要falsh支持,进度可以自定义显示,控制灵活, 本来打算使用jquery插件进行异步文件上传,比如uploadfy但是需要额外的支持,也有人用iframe模仿异步上传机制,感觉都比较别扭。…

淘宝客如何建设推广网站最好看免费观看高清大全一影视下载

文章目录 01. Nginx 简介02. 正向代理和反向代理03. Nginx 和 Apache、Tomcat 之间的不同点04. Nginx 的优点05. Nginx 常用的功能特性06. Nginx 下载07. Nginx 安装1. 源码安装前的环境准备2. Nginx 源码简单安装方式3. Nginx yum 安装方式4. Nginx 源码复杂安装方式 08. Ngin…

有没有什么排版的网站夹江移动网站建设

其实就这么一个插件:Image2Mesh https://github.com/kedepot/i2m-std blender加载完图片之后点这个就行 到了这一步还不行如果直接放到unity中使用的话,添加材质和贴图之后每一个小块都是独立的区域来展示贴图,所以需要展UV

做的好的有哪些网站wordpress 标签 中文

Buffer 用途:缓冲通常用于临时存储数据,以平衡不同速度的数据传输过程直接的差异。它可以用来解决数据传输速度不匹配的问题。 例如: 当您在观看视频时,视频播放器会缓冲一段时间的视频数据,以便在网络速度慢或不稳定…

德州网站建设哪家专业威海优化公司立找2火星

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 🔥 优质竞赛项目系列,今天…

前端开发网站开发wordpress 注册页

如果要使用或仅通过Spring Boot检查Spring的最新版本,但当前的Spring Boot版本取决于旧的Spring版本,则需要稍微调整Gradle构建配置。 例如,在撰写本文时,Spring 4.2.1和Spring Boot 1.2.5是当前版本。 Spring Boot 1.2.5依赖于S…

贵阳有哪些做网站的公司seo网页优化包括哪些内容

创建版本库(又名仓库,repository),可以理解为一个仓库,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者…

外卖网站建设价钱徐州在线制作网站

来源:百度地图“新基建”浪潮下,智慧城市的建设和发展进一步提速,作为智慧城市数字基础设施的地理信息系统,其数据体量也极大增长,对海量GIS数据集成、存储、管理、计算、表达、分析和应用等有关技术的创新发展提出了急…