范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  19.1安装Anaconda
  Anaconda是Python的一个开源发行版本,它预装了丰富的第三方库,而且主要面向科学计算和数据分析,使用起来要比原版的Python更省时省力。
  Anaconda官方下载网址为:https://www.continuum.io/downloads。下载和安装的方法很简单,若有问题可以在网上搜索相关内容学习解决。
  安装Anaconda之后,就会发现在Anaconda目录下同时安装了Jupyter Notebook、Spyder等工具,我们接下来主要使用Spyder进行开发。关于Spyder的使用方法非常简单,大家也可以去网上搜索学习。
  虽然Anaconda已经预装了很多常用的包,但有时我们也需要自己安装一些包。可以在开始菜单中选择"Anaconda Anaconda Prompt"命令,在命令行输入conda install  ( 代表包名)即可安装,也可以输入pip install  。
  19.2数据分析包Pandas
  Pandas是Python的一个数据分析包,Anaconda安装时已经附带安装了Pandas包。
  Pandas数据结构有三种:Series(一维数组)、DataFrame(二维数组)和Panel(三维数组),其中最常用的是前两种数据结构。
  19.2.1 Series
  Series(序列)用于存储一行或一列数据,以及与之相关的索引的集合。
  语法格式如下:
  Series([数据1,数据2,......], index=[索引1,索引2,......])
  例:
  from pandas import Series
  s=Series(["张三","李四","王五"],index=[1,2,3])
  print(s)
  输出结果如下:
  1 张三
  2 李四
  3 王五
  dtype: object
  上面建立序列时指定了索引,若不指定,则默认的索引值从0开始。如下:
  s=Series(["张三","李四","王五"])
  输出结果为:
  0 张三
  1 李四
  2 王五
  dtype: object
  索引值也可以为字符串。如下:
  from pandas import Series
  s=Series(["张三","李四","王五"],index=["A","B","C"])
  print(s)
  输出结果为:
  A 张三
  B 李四
  C 王五
  dtype: object
  1、访问序列
  (1)可以通过索引访问序列,如:
  from pandas import Series
  s=Series(["张三","李四","王五"])
  print(s)
  print(s[0])
  print(s[1:])
  运行结果如下:
  0 张三
  1 李四
  2 王五
  dtype: object #print(s)输出
  张三 #print(s[0])输出
  1 李四
  2 王五
  dtype: object #print(s[1:])输出
  (2)通过值获取索引值
  from pandas import Series
  s=Series(["张三","李四","王五"],index=["A","B","C"])
  print(s.index[s.values=="李四"])
  运行结果:
  Index(["B"], dtype="object")
  (3)判断值是否存在
  from pandas import Series
  s=Series(["张三","李四","王五"],index=["A","B","C"])
  f="李四" in s.values
  print(f)
  运行结果:
  True
  (4)定位获取
  from pandas import Series
  s=Series(["张三","李四","王五","孙六"],index=["A","B","C","D"])
  print(s[[0,2,1]])
  运行结果:
  A 张三
  C 王五
  B 李四
  dtype: object
  2、修改序列
  (1)追加序列,如:
  from pandas import Series
  s=Series(["张三","李四","王五"],index=["A","B","C"])
  s1=Series(["孙六"],index=["D"])
  s=s.append(s1)
  print(s)
  运行结果:
  A 张三
  B 李四
  C 王五
  D 孙六
  dtype: object
  (2)修改序列的值
  from pandas import Series
  s=Series(["张三","李四","王五","孙六"],index=["A","B","C","D"])
  s[1]="李飞"
  print(s)
  运行结果:
  A 张三
  B 李飞
  C 王五
  D 孙六
  dtype: object
  不知道索引,仅知道要修改的值,也可通过值查找到索引后,再修改序列的值。如:
  s[s.index[s.values=="李四"]]="李飞"
  这样也可以将"李四"修改为"李飞。
  (3)修改索引
  from pandas import Series
  s=Series(["张三","李四","王五","孙六"],index=["A","B","C","D"])
  s.index=[0,1,2,3]
  print(s)
  运行结果:
  0 张三
  1 李四
  2 王五
  3 孙六
  dtype: object
  (4)删除元素
  from pandas import Series
  s=Series(["张三","李四","王五","孙六"],index=["A","B","C","D"])
  s=s.drop("A")
  print(s)
  运行结果:
  B 李四
  C 王五
  D 孙六
  dtype: object
  (5)重新排序
  可以按照索引排序,使用sort_index(ascending=True)方法对index进行排序操作。
  from pandas import Series
  s=Series(["张三","李四","王五","孙六"],index=["A","B","C","D"])
  s=s.sort_index(ascending=False) # ascending=False表示按降序排列
  print(s)
  运行结果:
  D 孙六
  C 王五
  B 李四
  A 张三
  dtype: object
  (6)重置索引
  重置索引可以使用reindex()。如果index列表中的元素多于序列的值,可用fill_value=0这样的语句填充。
  s=s.reindex(["D","C","B","A"])
  如果index列表中的元素多于序列的值,可用fill_value=0这样的语句填充。
  s=s.reindex(["D","C","B","A"], fill_value=0)
  19.2.2 DataFrame
  DataFrame(数据框架)用于存储多行和多列的数据集合。它是Series的容器,类似于Excel中二维表格。
  定义一个DataFrame的语法格式如下:
  df=DataFrame({列名1 : 序列1,列名2 : 序列2,.......列名n : 序列n}, index=序列 )
  例如,有如下二维表:
  姓名
  性别
  年龄
  张三
  男
  18
  李四   女   19
  王五   男   17
  保存到DataFrame中可以用如下方法:   from pandas import Series   from pandas import DataFrame   name=Series(["张三","李四","王五"])   sex=Series(["男","女","男"])   age=Series([18,19,17])   df=DataFrame({"姓名":name,"性别":sex,"年龄":age})   print(df)   运行结果:   姓名 性别 年龄   0 张三 男 18   1 李四 女 19   2 王五 男 17   从上例可以看出,虽然我们省缺了索引,但系统自动添加了从0开始的索引值。   19.3 DataFrame的基本操作   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()。   sex1=Series(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(["姓名", "性别", "年龄"], dtype="object")   Index(["name", "sex", "age"], dtype="object")   可见,列名已经由"姓名、性别、年龄"修改为"age、sex、age"了。但这种修改必须把全部列名都一一列举,不能有遗漏,否则就会出错。如:   df.columns=["name","sex"]   此时会报错:ValueError: Length mismatch: Expected axis has 3 elements, new values have 2 elements。   (2)修改行索引   df.index=[1,2,3]   (3)删除行   df.drop(1,axis=0) # axis=0表示行轴,也可以省略   (4)删除列   df.drop(‘性别’,axis=1) # axis=0表示列轴   也可以使用另一种方法:   del df["性别"]   (5)增加列   df["电话"]=["1111111","2222222","3333333"]   print(df)   运行结果:   姓名 性别 年龄 电话   0 张三 男 18 1111111   1 李四 女 19 2222222   2 王五 男 17 3333333   (6)增加行   df.loc[len(df)]=["孙六","男","20"]   (7)追加   from pandas import Series   from pandas import DataFrame   name=Series(["张三","李四","王五"])   sex=Series(["男","女","男"])   age=Series([18,19,17])   df=DataFrame({"姓名":name,"性别":sex,"年龄":age}) # 建立DataFrame,变量名为df   name1=Series(["孙六","候七"])   sex1=Series(["男","女"])   age1=Series([19,17])   df1=DataFrame({"姓名":name1,"性别":sex1,"年龄":age1})   # 建立DataFrame,变量名为df1   df=df.append(df1,ignore_index=True)   # 将对df1追加到df后面,参数ignore_index=True表示重新索引   print(df)   运行结果:   姓名 性别 年龄   0 张三 男 18   1 李四 女 19   2 王五 男 17   3 孙六 男 19   4 候七 女 17

奔腾B70,能否受到年轻消费者的青睐?一汽奔腾将于10月底推出B702。0T车型,新车的动力和T99同源。除了超高动力之外,新车还提供双色车身红色卡钳和运动轮毂等更多运动时尚元素,价格值得期待。外观方面,奔腾B702。MPV新晋宠儿,广汽丰田赛那,即将震撼来袭随着三胎政策的开放,为满足中国大家庭多人口出行的增多,让MPV车型成为一种全新的家庭式消费,并且在国内市场上占据了很高的热度。毕竟它是集旅行车轿车厢式货车于一身的多功能车型。这种家新年新面貌更新布置下电脑桌面上的那些相关设备在这之前发过不少关于桌面展示的文章,而这次要展示的是自己的工作桌面,自己平时的设计的工作都是在这里完成的,不过并非我的主力机,其实算是二奶机吧,所以并不是很重视这张桌子的摆放效果,存放那些无处安放的数据威联通TR004磁盘阵列外接盒体验说在前面这些年随着固态硬盘的价格越来越平易近人吧,自己的PC主机已经基本脱离了机械硬盘存储了,而曾经是个高清爱好者的我,先前对于每年的一些较好的影片都会去下载其高清1080P版本收2019年度电脑装备折腾总结,晒晒我的大奶二奶同房桌面展示众所周知的问题,为了不给国家添麻烦,也为了自己和家人的健康,这个春节假期只能乖乖的闷在家里,假期特别的长,时间大把大把的无处打发,那么就整理收拾下自己的电脑桌面给大家做个装备上的分轻薄又有TypeC口的显示器飞利浦276C8开箱评测体验日常我们能接触到的大部分常规液晶显示器,其主要的零部件都是集中在屏幕的背面,因此虽然目前主流的显示器均可以实现超窄边框的外观设计,不过在这样的组装方式下,绝大部分很难给予搭配超薄的不一样的青轴机械键盘罗技G512C轴机械键盘简测说在前面话说本人也算是罗技的忠实观众吧,接触外设以来,用过的鼠标貌似基本上都是罗技的,目前工作和家里的用的均为G900的无线鼠标,不过他们家的键盘,真心用得并不多,机械键盘的话,在1套SPSA键帽惹的祸IQUNIXF96JOKER版无线双模机械键盘体验最初关注机械键盘,那时候还非常的小众,普遍只推黑轴,个人初衷只是想要给自己整一把经久耐用的输入工具而已,不想接触过后就没停过更换键盘的节奏,不同的品牌不同的抽体不同的配列不同的键帽mapboxgl实现带箭头轨迹线(类高德轨迹效果)最近在使用mapboxgl实现轨迹展示时,想实现类似高德地图导航轨迹效果,然而并未在网上找到类似示例。经一番研究与尝试,最终解决,效果如下。添加箭头核心代码如下,只需在配置layo三季度全球个人电脑出货量达8420万台2021年硅晶圆出货量将同比增长13。9每周产业数据汇总本周有哪些值得关注的数据及榜单呢?Counterpoint三季度PC销量达8420万台,苹果Mac销量同比增长1110月21日消息,Counterpoint公布了2021年第三季度一个平面设计师的日常出行EDC简晒前言这几年,流行晒各种EDC,最近刚好整了个包,SO!这边我就做为一个设计师的出行装备做个展示吧,其实平常的工作日里的我基本上都是呆在公司里头和电脑谈恋爱,所以出门上班的话,其实并
小米Buds3配置速看旗舰级混合降噪,很遗憾没有空间音频数码圈这一年你有想过自己已经多久离不开耳机了吗?以前戴有线耳机总是会觉得厌烦,因为每次耳机线都会缠绕在一起,每次戴耳机前还得多一步理线的步骤,真的好浪费时间。但现在有了蓝牙的出现,看了iPhone14,刚到手的iPhone13退货还来得及吗?iPhone13才刚刚拿到手,iPhone14即将上市的消息就随之而来了。看了iPhone14渲染图和参数配置后,到手的13都不香了。与iPhone13相比,iPhone14最大的超级重要的Java知识点详解集合框架前言前面我们保存大量数据时,首先会想到数组。但数组长度是固定的,如果保存数量不确定的数据时就存在问题了。本文将带大家了解Java集合框架的体系结构,掌握ListSetMap接口的区品质坚如磐石的三防手机AGMM6体验,让老人体验越来越好对于数码爱好者来说,AGM这个品牌并不陌生,在户外三防领域鼎鼎有名,旗下不仅推出了热爱户外运动的年轻用户所喜爱产品,还有为长辈们专门设计的M系列机型,满足老年群体的需求。今天体验的小米有品众筹频道推智能水龙头手是人的身体部位中接触细菌最多的部位,养成良好的洗手习惯对预防疾病是有着关键作用。所以小米现在在水龙头上面也是开启了新产品的制造。你家的水龙头或许也可以要换新喽。消息显示,小米有品小米MIX4和小米11Ultra谁更值得购买?8月10日晚上19点30分,雷总举行了他的年度演讲,在这场演讲中也伴随着发布了很多新品,其中最受关注的应该就是年度旗舰小米MIX4了,这款手机大家足足等待了三年,因为MIX的一代真小米手机再次发力骁龙888Plus120W快充时隔三年,小米MIX系列迭代新机姗姗来迟。近日,根据多家科技媒体的消息,2021雷军年度演讲,米粉期待已久的MIX4正式发布,是MIX基础序列的真正迭代机型。对于小米MIX系列来说8月13日,小米新系统迎来公测,首批支持13款机型2021雷军年度演讲上,小米一口气发布了四款产品,分别为小米MIX4小米平板4小米电视和四足机器人CyberDo,可以说是吊足米粉胃口。但并非所有米粉都关注硬件产品,看发布会的网友七夕送男生什么礼物好?告诉你男生最喜欢的蓝牙耳机七夕情人节送男生什么礼物好呢?好多女生都纠结这个问题,其实很多男生都比较喜欢数码产品哦,比如蓝牙耳机或者手机,送一款蓝牙耳机再手工做一个耳机保护套肯定让男生更开心呢。如果要送蓝牙耳荣耀平板V7Pro深度体验这一套,全能应对你的各种需求随着这两年线上教育的兴起,平板市场重新迎来了热潮。也随着各品牌的深耕,平板如今有了更出色的应用表现。在过去几年,平板产品一度被很多品牌放弃,因为觉得受众群并不多。但也有那么几个品牌三星8月份新品发布会将在今天举办,折叠屏新手机也将登场依照过去的情况,8月份是三星新品发布旗舰级商品的重特大连接点,2021年不出意外,全世界新品发布会将在今天举办,换句话说三星重磅消息的Galaxy新品会在今天宣布出场。再依据官方网