城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

Python其实很简单第十九章Pandas之Series与D

11月11日 观潮阁投稿
  19。1安装Anaconda
  Anaconda是Python的一个开源发行版本,它预装了丰富的第三方库,而且主要面向科学计算和数据分析,使用起来要比原版的Python更省时省力。
  Anaconda官方下载网址为:https:www。continuum。iodownloads。下载和安装的方法很简单,若有问题可以在网上搜索相关内容学习解决。
  安装Anaconda之后,就会发现在Anaconda目录下同时安装了JupyterNotebook、Spyder等工具,我们接下来主要使用Spyder进行开发。关于Spyder的使用方法非常简单,大家也可以去网上搜索学习。
  虽然Anaconda已经预装了很多常用的包,但有时我们也需要自己安装一些包。可以在开始菜单中选择AnacondaAnacondaPrompt命令,在命令行输入condainstall(代表包名)即可安装,也可以输入pipinstall。
  19。2数据分析包Pandas
  Pandas是Python的一个数据分析包,Anaconda安装时已经附带安装了Pandas包。
  Pandas数据结构有三种:Series(一维数组)、DataFrame(二维数组)和Panel(三维数组),其中最常用的是前两种数据结构。
  19。2。1Series
  Series(序列)用于存储一行或一列数据,以及与之相关的索引的集合。
  语法格式如下:
  Series(〔数据1,数据2,。。。。。。〕,index〔索引1,索引2,。。。。。。〕)
  例:
  frompandasimportSeries
  sSeries(〔张三,李四,王五〕,index〔1,2,3〕)
  print(s)
  输出结果如下:
  1张三
  2李四
  3王五
  dtype:object
  上面建立序列时指定了索引,若不指定,则默认的索引值从0开始。如下:
  sSeries(〔张三,李四,王五〕)
  输出结果为:
  0张三
  1李四
  2王五
  dtype:object
  索引值也可以为字符串。如下:
  frompandasimportSeries
  sSeries(〔张三,李四,王五〕,index〔A,B,C〕)
  print(s)
  输出结果为:
  A张三
  B李四
  C王五
  dtype:object
  1、访问序列
  (1)可以通过索引访问序列,如:
  frompandasimportSeries
  sSeries(〔张三,李四,王五〕)
  print(s)
  print(s〔0〕)
  print(s〔1:〕)
  运行结果如下:
  0张三
  1李四
  2王五
  dtype:objectprint(s)输出
  张三print(s〔0〕)输出
  1李四
  2王五
  dtype:objectprint(s〔1:〕)输出
  (2)通过值获取索引值
  frompandasimportSeries
  sSeries(〔张三,李四,王五〕,index〔A,B,C〕)
  print(s。index〔s。values李四〕)
  运行结果:
  Index(〔B〕,dtypeobject)
  (3)判断值是否存在
  frompandasimportSeries
  sSeries(〔张三,李四,王五〕,index〔A,B,C〕)
  f李四ins。values
  print(f)
  运行结果:
  True
  (4)定位获取
  frompandasimportSeries
  sSeries(〔张三,李四,王五,孙六〕,index〔A,B,C,D〕)
  print(s〔〔0,2,1〕〕)
  运行结果:
  A张三
  C王五
  B李四
  dtype:object
  2、修改序列
  (1)追加序列,如:
  frompandasimportSeries
  sSeries(〔张三,李四,王五〕,index〔A,B,C〕)
  s1Series(〔孙六〕,index〔D〕)
  ss。append(s1)
  print(s)
  运行结果:
  A张三
  B李四
  C王五
  D孙六
  dtype:object
  (2)修改序列的值
  frompandasimportSeries
  sSeries(〔张三,李四,王五,孙六〕,index〔A,B,C,D〕)
  s〔1〕李飞
  print(s)
  运行结果:
  A张三
  B李飞
  C王五
  D孙六
  dtype:object
  不知道索引,仅知道要修改的值,也可通过值查找到索引后,再修改序列的值。如:
  s〔s。index〔s。values李四〕〕李飞
  这样也可以将李四修改为李飞。
  (3)修改索引
  frompandasimportSeries
  sSeries(〔张三,李四,王五,孙六〕,index〔A,B,C,D〕)
  s。index〔0,1,2,3〕
  print(s)
  运行结果:
  0张三
  1李四
  2王五
  3孙六
  dtype:object
  (4)删除元素
  frompandasimportSeries
  sSeries(〔张三,李四,王五,孙六〕,index〔A,B,C,D〕)
  ss。drop(A)
  print(s)
  运行结果:
  B李四
  C王五
  D孙六
  dtype:object
  (5)重新排序
  可以按照索引排序,使用sortindex(ascendingTrue)方法对index进行排序操作。
  frompandasimportSeries
  sSeries(〔张三,李四,王五,孙六〕,index〔A,B,C,D〕)
  ss。sortindex(ascendingFalse)ascendingFalse表示按降序排列
  print(s)
  运行结果:
  D孙六
  C王五
  B李四
  A张三
  dtype:object
  (6)重置索引
  重置索引可以使用reindex()。如果index列表中的元素多于序列的值,可用fillvalue0这样的语句填充。
  ss。reindex(〔D,C,B,A〕)
  如果index列表中的元素多于序列的值,可用fillvalue0这样的语句填充。
  ss。reindex(〔D,C,B,A〕,fillvalue0)
  19。2。2DataFrame
  DataFrame(数据框架)用于存储多行和多列的数据集合。它是Series的容器,类似于Excel中二维表格。
  定义一个DataFrame的语法格式如下:
  dfDataFrame({列名1:序列1,列名2:序列2,。。。。。。。列名n:序列n},index序列)
  例如,有如下二维表:
  姓名
  性别
  年龄
  张三
  男
  18hr李四
  女
  19hr王五
  男
  17hr保存到DataFrame中可以用如下方法:
  frompandasimportSeries
  frompandasimportDataFrame
  nameSeries(〔张三,李四,王五〕)
  sexSeries(〔男,女,男〕)
  ageSeries(〔18,19,17〕)
  dfDataFrame({姓名:name,性别:sex,年龄:age})
  print(df)
  运行结果:
  姓名性别年龄
  0张三男18
  1李四女19
  2王五男17
  从上例可以看出,虽然我们省缺了索引,但系统自动添加了从0开始的索引值。
  19。3DataFrame的基本操作
  1、访问方式
  (1)获取行
  print(df〔1:2〕)获取第1行的值
  输出结果:
  姓名性别年龄
  1李四女19
  print(df〔1:3〕)获取第1行到第2行的值
  输出结果:
  姓名性别年龄
  1李四女19
  2王五男17
  (2)获取列
  print(df〔姓名〕)获取姓名列的值
  输出结果:
  0张三
  1李四
  2王五
  Name:姓名,dtype:object
  另一种方法:
  print(df〔df。columns〔0:1〕〕)先按照索引号获取列名,再按照列名读取
  输出结果和上面的方法完全一致。
  还有一种情况,是获取唯一值,即将列内的重复值中多余的删除,仅留下互不相同的值。所用的到方法是unique()。
  sex1Series(df〔性别〕。unique())
  print(sex1)
  输出结果:
  0男
  1女
  dtype:object
  (3)获取指定位置的值
  print(df。at〔1,姓名〕)格式为变量名。at〔行号,列名〕
  输出结果:
  李四
  (4)获取块的值
  print(df。iloc〔0:2,1:3〕)格式为变量名。iloc〔行号1:行号2,列号1:列号2〕
  输出结果:
  性别年龄
  0男18
  1女19
  print(df。iloc〔:,1:2〕)获取性别列的值
  运行结果:
  性别
  0男
  1女
  2男
  2、修改、删除、增加行和列
  (1)修改列名
  print(df。columns)
  df。columns〔name,sex,age〕
  print(df。columns)
  输出结果:
  Index(〔姓名,性别,年龄〕,dtypeobject)
  Index(〔name,sex,age〕,dtypeobject)
  可见,列名已经由姓名、性别、年龄修改为age、sex、age了。但这种修改必须把全部列名都一一列举,不能有遗漏,否则就会出错。如:
  df。columns〔name,sex〕
  此时会报错:ValueError:Lengthmismatch:Expectedaxishas3elements,newvalueshave2elements。
  (2)修改行索引
  df。index〔1,2,3〕
  (3)删除行
  df。drop(1,axis0)axis0表示行轴,也可以省略
  (4)删除列
  df。drop(‘性别’,axis1)axis0表示列轴
  也可以使用另一种方法:
  deldf〔性别〕
  (5)增加列
  df〔电话〕〔1111111,2222222,3333333〕
  print(df)
  运行结果:
  姓名性别年龄电话
  0张三男181111111
  1李四女192222222
  2王五男173333333
  (6)增加行
  df。loc〔len(df)〕〔孙六,男,20〕
  (7)追加
  frompandasimportSeries
  frompandasimportDataFrame
  nameSeries(〔张三,李四,王五〕)
  sexSeries(〔男,女,男〕)
  ageSeries(〔18,19,17〕)
  dfDataFrame({姓名:name,性别:sex,年龄:age})建立DataFrame,变量名为df
  name1Series(〔孙六,候七〕)
  sex1Series(〔男,女〕)
  age1Series(〔19,17〕)
  df1DataFrame({姓名:name1,性别:sex1,年龄:age1})
  建立DataFrame,变量名为df1
  dfdf。append(df1,ignoreindexTrue)
  将对df1追加到df后面,参数ignoreindexTrue表示重新索引
  print(df)
  运行结果:
  姓名性别年龄
  0张三男18
  1李四女19
  2王五男17
  3孙六男19
  4候七女17
投诉 评论 转载

有什么办公软件超级好用,却不被大众所知?感谢邀请。在日常工作中,比较好用的办公软件还是挺多的,至于是不是被大众所知,那就无从查起了,可以给楼主推荐几款。一、Everythingeverything是一款特……美国围堵和遏制中国,英国敢于对美国说不,批准中资收购芯片企业美国从2018年开始了对于中国的贸易战,除了对于中国众多商品加征特别关税之外,还对于中国的高科技企业进行了制裁,无论是特朗普政府还是拜登政府,都是试图在芯片领域与中国进行切割。……腾讯2021年营收5601亿元,人均月薪7。06万元鞭牛士3月24日消息,昨日,腾讯发布2021年业绩报告,总收入为5601亿元,首次突破5000亿元,同比增长16;实现净利润2,248。2亿元,相当于日赚6。16亿元,同比增长……高盛大规模增持阿里巴巴,中概互联网的高光时刻来临高盛公布三季度持仓,大规模增持阿里巴巴根据高盛提交的三季度持仓报告显示,截至9月30日,高盛加仓1747。60万股阿里巴巴,共持有4797。79万股,增持幅度高达57。2……699元!今年最便宜的魅族手机开卖,5000mAh电池48M尽管在去年底魅族官方就向外界宣布即将重启魅蓝手机战略的消息,且今年1月就发布了首发机型魅蓝10,然而硬是让粉丝等了快2个月,这款魅蓝手机才正式到来。就在近日,魅蓝10正式……宗教背景下人人皆罪人,而儒家文化背景下的圣贤和君子却近乎完美我是萨沙,我来回答。这就是基督教文明和儒教(注意不是儒家,有本质不同)文明最大的一个区别。说通俗点,就是人性本恶和人性本善论的区别。基督教认为,人性本恶,人出……Python其实很简单第十九章Pandas之Series与D19。1安装AnacondaAnaconda是Python的一个开源发行版本,它预装了丰富的第三方库,而且主要面向科学计算和数据分析,使用起来要比原版的Python更省时……你OUT了吗,for双层循环可以使用stream方式替代糟粕代码java8已经出了Stream流处理方式,但是实际业务开发时,大部分同学还是下意识的去写for双层循环。一眼看穿繁华这段代码写法就是典型的for双层循环,我……苹果66s相当于什么机型?感谢您的阅读!苹果6和苹果6S这两款手机相当于什么机型?如果说iPhone6和iPhone6S的话,他们可能在性能方面和现在的千元手机相比,都有一些相形见绌。……华为P50E手机今日1008准时开售华为在3月16举行了2022华为全屋智能及全场景新品春季发布会,余承东在此带来了华为P50E手机新品。华为P50E仅有两个版本,将于今日上午10:08准时开售:8GB12……什么牌子的燃气热水器质量好?要点一是选购与你家庭使用燃气种类一致的热水器。消费者要弄清你家庭使用是何种燃气气源。要点二是地理位置。因为南北温差及洗浴习惯不同,所以在选择的时候应注意。国产……我市一项目入选国家创新领航应用案例淄博日报记者杨秋云报道本报讯1月16日,记者从市工信局获悉,我市智洋创新基于人工智能的无信号区输电线路智能监测系统创新应用项目入选工信部2021年工业互联网平台创新领航应……
10个鲜为人知的iPhone功能会让你大吃一惊电力北斗开启新疆电网无人机巡检规模化应用时代关于互联网思维的一些学习与了解以身试毒,那些总是推送的大流量手机卡到底如何?朋友看上了iQOO9Pro的屏幕,它真的好吗?Dell笔记本闪屏怎么回事滚筒洗衣机性能对比测试松下美菱等10款样品机对织物损伤较大告诉大家无线话筒麦克风什么品牌好用,防啸叫防断音数字经济提升居民幸福感小米公布最新快充技术八分钟即可为手机充满电耐克react和Nimbus哪个好?中国制造业竞争力是世界一流吗?
在梦里有个真实的你雷锋日作文1000字帮助他人,快乐自己微信能查多长时间聊天记录(微信怎么看聊天记录)四个非常优质的在线工具,可遇不可求!小学安全教育日活动总结精选多篇逆水寒手游新地图隐藏惊天雷?玩家:别在东极海发誓热议聚热点网 配偶一方死亡是否终止婚姻关系醉驾单处罚金的案件是否存在?宝宝感冒怎么让他出汗“夹生”的名师,不妨再回回炉频繁性羔巢会染上性瘾,还是促进健康?冬天雪后怎么启动车辆冬天雪后如何启动车辆

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁