数据分析——Pandas的用法(Series,DataFrame)只会玩辅助

我们先要了解,pandas是基于Numpy构建的,pandas中很多的用法和numpy一致。pandas中又有series和DataFrame,Series是DataFrame的基础。

pandas的主要功能:

一、Series

1.创建方法

第一种:pd.Series([4,5,6,7])#执行结果04152637dtype:int64#将数组索引以及数组的值打印出来,索引在左,值在右,由于没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引,取值的时候可以通过索引取第二种:pd.Series([4,5,6,7,8],index=['a','b','c','d','e'])#index索引是用[]#执行结果a4b5c6d7e8dtype:int64#自定义索引,index是指定的索引名,是一个索引列表,里面包含的是字符串,依然可以通过默认索引取值。第三种:pd.Series({"a":1,"b":2})#传入字典格式数据#执行结果:a1b2dtype:int64#传入字典格式的数据,字典的key当成指定索引第四种:pd.Series(0,index=['a','b','c'])#执行结果:a0b0c0dtype:int64#创建一个值都是0的数组对于Series,其实我们可以认为它是一个长度固定且有序的字典,因为它的索引和数据是按位置进行匹配的,像我们会使用字典的上下文,就肯定也会使用Series,也支持通过索引取值。

2.缺失数据(******)在处理数据的时候经常会遇到这类情况

#第一步,创建一个字典,通过Series方式创建一个Series对象st={"sean":18,"yang":19,"bella":20,"cloud":21}obj=pd.Series(st)obj运行结果:sean18yang19bella20cloud21dtype:int64------------------------------------------#第二步a={'sean','yang','cloud','rocky'}#定义一个索引变量------------------------------------------#第三步obj1=pd.Series(st,index=a)obj1#将第二步定义的a变量作为索引传入#运行结果:rockyNaNcloud21.0sean18.0yang19.0dtype:float64#因为rocky没有出现在st的键中,所以返回的是缺失值dropna()#过滤掉值有NaN的行

obj1.dropna()#执行结果cloud21.0sean18.0yang19.0dtype:float64fillna()#填充缺失数据,这个填写1

obj1.fillna(1)#执行结果cloud21.0sean18.0yang19.0rocky1.0dtype:float64isnull()#缺失值返回True

obj1.isnull()#执行结果cloudFalseseanFalseyangFalserockyTruedtype:boolnotnull()#不是缺失值返回True

obj1.notnull()#执行结果cloudTrueseanTrueyangTruerockyFalsedtype:bool利用布尔值索引过滤缺失值

obj1[obj1.notnull()]#只有True的才显示#执行结果cloud21.0sean18.0yang19.0dtype:float643.Series特性

因为pandas是基于numpy的,所以有numpy的很多特性,Series和numpy很多类似

支持字典的特性:

4.整数索引

sr=pd.Series(np.arange(10))sr1=sr[3:]sr1运行结果:33445566778899dtype:int32#到这里会发现很正常,一点问题都没有,可是当使用整数索引取值的时候就会出现问题了。因为在pandas当中使用整数索引取值是优先以标签解释的(就是index的值),而不是下标。比如我想取索引值为1的数值,不再是我们之前的那种方法

sr1[1]#这种方式是取不出的,因为默认优先的是以标签解释的,这个没有1的标签(index)解决方法:

sr1.iloc[1]#以下标取值,(索引值为1的)#执行结果4sr1.loc[4]#以标签取值(index值为1)#执行结果45.Series数据对齐

sr1=pd.Series([12,23,34],index=['c','a','d'])sr2=pd.Series([11,20,10],index=['d','c','a',])sr1+sr2运行结果:a33c32d45dtype:int64#可以通过这种索引对齐直接将两个Series对象进行运算sr3=pd.Series([11,20,10,14],index=['d','c','a','b'])sr1+sr3运行结果:a33.0bNaNc32.0d45.0dtype:float64#sr1和sr3的索引不一致,所以最终的运行会发现b索引对应的值无法运算,就返回了NaN,一个缺失值将两个Series对象相加时将缺失值设为0

sr1=pd.Series([12,23,34],index=['c','a','d'])sr3=pd.Series([11,20,10,14],index=['d','c','a','b'])sr1.add(sr3,fill_value=0)运行结果:a33.0b14.0c32.0d45.0dtype:float64#将缺失值设为0,所以最后算出来b索引对应的结果为14二.DataFrame

DataFrame是一个表格型的数据结构,相当于是一个二维数组,含有一组有序的列。他可以被看做是由Series组成的字典,并且共用一个索引(这里的索引指的就是列索引)。

1.创建方式

创建一个DataFrame数组可以有多种方式,其中最为常用的方式就是利用包含等长度列表或Numpy数组的字典来形成DataFrame:

第一种:pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})#产生的DataFrame会自动为Series分配所索引,并且列会按照排序的顺序排列运行结果:onetwo014123232341#字典的key就是列索引,行索引和series一致>指定列可以通过columns参数指定顺序排列data=pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})pd.DataFrame(data,columns=['two','one'])#指定显示顺序#执行结果twoone041132223314#注意:columns一定要是key值中的,才能匹配的到,不然会报错第二种:pd.DataFrame({'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([1,2,3],index=['b','a','c'])})运行结果:onetwoa12b21c33#字典的key是列索引,index是行索引2.查看数据

常用属性和方法:(和numpy类似)

onetwoa12b21c33#这样一个数组df-----------------------------------------------------------------------------df.index#行索引运行结果:Index(['a','b','c'],dtype='object')----------------------------------------------------------------------------df.columns#列索引运行结果:Index(['one','two'],dtype='object')--------------------------------------------------------------------------df.T#转置运行结果:abcone123two213-------------------------------------------------------------------------df.values#获取值,ndarray类型运行结果:array([[1,2],[2,1],[3,3]],dtype=int64)------------------------------------------------------------------------df.describe()#统计信息运行结果:onetwocount3.03.0mean2.02.0std1.01.0min1.01.025%1.51.550%2.02.075%2.52.5max3.03.03.索引和切片

DataFrame使用索引切片:

4.常见获取数据的方式

打开csv,excel等文档获取数据

另存为

df.to_csv('./a.csv',index=False)#另存为,不要保存行索引(index索引),不然打开a.csv会出现两个行索引read_html获取页面上的表格

举例子:计算nba球队获取总冠军的次数

根据冠军球队来分组

统计次数,然后排序

python库:datatime

a.resample("3D").mean()#计算每三天的均值a.resample("3D").sum()#计算每三天的和...6.数据分组和聚合

在数据分析当中,我们有时需要将数据拆分,然后在每一个特定的组里进行运算,这些操作通常也是数据分析工作中的重要环节。

分组(GroupBY机制)

主要就是groupby结合索引和size的使用

聚合函数(组内应用某个函数)

apply(******)

GroupBy当中自由度最高的方法就是apply,它会将待处理的对象拆分为多个片段,然后各个片段分别调用传入的函数,最后将它们组合到一起。

df.apply(['func','axis=0','broadcast=None','raw=False','reduce=None','result_type=None','args=()','**kwds']func:传入一个自定义函数axis:函数传入参数当axis=0就会把一行数据作为Series的数据

THE END
1.数据应用的几种类型理想股票技术论坛数据应用的几种类型包括数据分析应用和数据挖掘应用。数据分析应用是指基于大量数据进行统计分析和模型建立,以获取有关趋势、模式和关联性的洞察。数据挖掘应用是指通过发现、提取和识别隐藏在大规模数据集中的有价值信息来帮助决策制定和预测未来趋势。这些类型的数据应用https://www.55188.com/tag-3991216.html
2.达华智能:国泰君安证券股份有限公司关于公司发行股份购买资产并...六、 交易对方及其主要管理人员最近五年之内受过的行政处罚(与证券市场明显无关 的除外)、刑事处罚和涉及与经济纠纷有关的重大民事诉讼或者仲裁情况 ... 116 七、 交易对方及其主要管理人员最近五年的诚信情况,包括但不限于:交易对方及其 主要管理人员未按期偿还大额债务、未履行承诺、被中国证监会采取行政监管措施...https://stock.stockstar.com/notice/JC2015111000000295_86.shtml
3.质性数据分析工具在中国社会科学研究的应用——以Nvivo为例随着质性数据分析工具的不断开发及其应用推广,如何有效运用质性数据分析工具处理非结构化数据开展科学的质性研究引起国内外学者的广泛关注。一些学者首肯质性数据分析工具优势显著,指出其具有超越人工局限(beyond the feasible manual limits)的数据编码能力,可以更加高效精准地检索、分析与编码数据,有助于在质性研究中构建...https://www.jianshu.com/p/8c79092e1998
1.数据分析概述在数据可用于讲故事之前,必须通过使其在故事中可用的过程来运行数据。 数据分析是标识、清除、转换和建模数据的过程,用于发现有意义和有用的信息。 然后通过报表将数据制作成故事进行分析,支持关键的决策过程。 随着数据对世界发展的推动作用日益增加,通过数据分析讲述故事正在成为大大小小企业非常重要的一部分。 这也是...https://docs.microsoft.com/zh-cn/learn/modules/data-analytics-microsoft/2-data-analysis
2.大数据分析与应用:掌握数据分析基础与数据挖掘的艺术在这个数字化时代,大数据已成为企业决策、科学研究和社会管理的重要基石。大数据分析和应用的核心在于数据分析基础与数据挖掘技术的掌握。本文将带你深入了解数据分析的基础知识,探索数据挖掘的奥秘,为你的大数据之旅打下坚实的基础。 一、数据分析基础:构建思维的桥梁 ...https://blog.csdn.net/2401_84589901/article/details/143721219
3.数据分析应用在哪些方面数据分析的应用领域非常广泛,主要包括:一、商业领域;二、医疗保健领域;三、政府和公共服务领域;四、能源和环境领域;五、教育领域;六、科学研究领域。随着人工智能和机器学习技术的发展,数据分析技术将出现在更多的场景和行业领域中。 一、商业领域 商业领域是数据分析最广泛应用的领域之一。企业可以利用数据分析来帮助他...https://www.linkflowtech.com/news/1632
4.新闻资讯二、主要任务 (一) 升级完善省级危险化学品安全生产风险监测预警系统。根据有关立项审批进度,推进广东省危险化学品安全生产风 险监测预警系统三期建设,重点抓好创建高危企业现场作业全过程管理和智能监控新模式、化工园区安全风险全要素管理和实时监控新平台、监测预警数据综合分析和智能值守新模型、省级统一接入数据和粤系列...https://www.sztqai.com/news/20230109/170.html
5.自考管理系统中计算机应用00051模拟试卷及答案1自考维修人员、程序设计师之外,最主要的还有 A .数据库管理员 B .系统分析员 C .机房管理员 D .网络设计和施工人员 22.应用最早、使用较广泛的 MIS结构形式为 A .层次结构 B .职能结构 C .功能结构 D .管理阶段结构 23.对于职能部门之间横向联系较少, 职能部门管理对象很少交叉的企业, 其计 ...https://www.educity.cn/zikao/161765.html
6.10万胶囊胃镜检查数据透视中国消化道降状况,探讨器械智能化的...5、数据分析:对统计结果进行对比分析 C) 样本患者画像 患者来源:本次数据中的患者主要来自于两个渠道:医院和体检机构 患者年龄分布:本次样本数据中患者年龄主要以中青年为主,在56岁处有一个明显的断层,可能是受到患者来源渠道以及胶囊内镜检查价格的影响。 https://news.hexun.com/2019-01-30/196028858.html
7.“数据式审计模式”理论研讨征文商业银行数据式审计模式若干问题...【摘要】 本文主要就数据式审计理论的一些基本问题及商业银行开展数据式审计的实务问题进行探讨,以期对数据式审计模式的广泛应用抛砖引玉。首先从服务于审计实践的目的,阐述了关于数据式审计的几个重要术语,深度探讨其特点和规律,然后论述了商业银行数据式审计产生的背景,分析其数据式审计的特点和优势,剖析了数据式审计...https://audit.hainan.gov.cn/hdjl/hnsjzz/200801/t20080107_1988307.html
8.英语专业调研报告(通用10篇)通过以上数据分析来看,英语专业学生在就业问题上存在着自己的优缺点。除了高校需要提升培养学生的专业基本功、自学能力与交际沟通能力以外,还需要从以下三个方面着手: 第一,专业知识单一,职业技能有待加强。英语作为一门语言是一门应用性很强的专业,大部分院校为英语专业设置的课程都以培养基础语言应用能力为导向,忽视了...https://www.wenshubang.com/diaoyanbaogao/127025.html
9.天津市公安局联合作战指挥平台建设及应用基础支撑服务包括:作战指挥资源管理服务、统一通信服务、数据交换服务、运维管理服务。 平台业务应用包括:接处警应用、勤务动态管理应用、联合作战指挥应用、警务智能分析应用。 联合作战指挥平台架构图如图1所示。 (一)IaaS层 IaaS层主要包含:场地及辅助设施、机房及辅助设施、网络接入、作战指挥资源管理服务等四大部分。 https://www.secrss.com/articles/3899
10.调研工作计划(15篇)(三)走访医院或企业,对医院或企业人员(每家10人左右,10家100人左右,要求不同工作岗位的'人)进行问卷调研;要有照片资料、视频资料和问卷分析报告及签订的合作协议、聘请的行业专家的基本情况登记表。 (四)行业发展现状数据分析。 (五)专业发展现状数据分析。 https://www.yuwenmi.com/fanwen/jihua/4073392.html
11.2019级电子商务专业(跨境电商方向)人才培养方案(4)掌握数据采集、处理和综合分析相关知识。 (5)掌握国际物流规则、运费计算方式相关知识。 (6)掌握跨境客服相关知识。 (二)能力要求 1、专业能力 (1)能完成计算机和网络的日常应用管理工作,具备计算机及网络应用能力。 (2)具备较强的英语阅读能力、写作能力,能独立完成日常工作中的函电往来和在线实时沟通。 https://www.hnwmxy.com/jiaoxuekeyan/jiaoxuebiaozhunfabu/rencaipeiyangfangan/2019/1023/5268.html
12.什么是对象存储?对象存储的原理是什么?有哪些开源的非开源的...云对象存储是一种在云端提供对象存储服务的方式,这种存储方案可以支持海量数据,并允许数据通过互联网进行访问和共享。 对象存储的应用 对象存储广泛用于云计算、大数据分析、互联网、金融和医疗行业等领域。下面是一些应用场景的例子: 云存储 云存储是在云端将数据保存到对象存储系统中,允许用户通过 Internet 访问数据。...https://cloud.tencent.com/developer/article/2278315
13.上网调查报告范文(精选8篇)二、调查对象 由于受人力资源限制,本次调查主要集中于郑州轻工业学院的学生。学生的分布情况为:大一15人;大二30人;大三10人;大四9人。 三、调查数据分析 调查表明,大学生上网率为84%。网龄小于1年、1年-3年、3年-5年和5年以上者分别为上网学生的43%、51%、2%和4%,每周上网时数小于5、5-10、10-15和...https://mip.ruiwen.com/gongwen/baogao/540553.html