使用pandas进行数据处理之 DataFrame篇-Python教程

资源魔 48 0

相干学习保举:python教程

这是pandas数据解决专题的第二篇文章,咱们一同来聊聊pandas傍边最首要的数据构造——DataFrame。

上一篇文章傍边咱们引见了Series的用法,也提到了Series相称于一个一维的数组,只是pandas为咱们封装了许多不便好用的api。而DataFrame能够简略了了解成Series形成的dict,这样就将数据拼接成为了二维的表格。而且为咱们提供了许多表级别数据解决和批量数据解决的接口,年夜年夜升高了数据解决的难度。

创立DataFrame

DataFrame是一个表格型的数据构造,它领有两个索引,辨别是行索引和列索引,使患上咱们能够很不便地猎取对应的行和列。这就年夜年夜升高了咱们查找数据解决数据的难度。

起首,咱们先从最简略的开端,若何创立一个DataFrame。

从字典创立

咱们创立了一个dict,它的key是列名,value是一个list,当咱们将这个dict传入DataFrame的结构函数的时分,它将会以key作为列名,value作为对应的值为咱们创立一个DataFrame。

当咱们正在jupyter输入的时分,它会主动为咱们将DataFrame中的内容以表格的方式展示。

从numpy数据创立

咱们也能够从一个numpy的二维数组来创立一个DataFrame,假如咱们只是传入numpy的数组而没有指定列名的话,那末pandas将会以数字作为索引为咱们创立列

咱们正在创立的时分为columns这个字段传入一个string的list便可为它指定列名:

从文件读取

pandas另一个十分弱小的性能就是能够从各类格局的文件傍边读取数据创立DataFrame,比方像是罕用的excel、csv,乃至是数据库也能够。

关于excel、csv、json等这类构造化的数据,pandas提供了专门的api,咱们找到对应的api进利用用便可:

假如是一些比拟非凡格局的,也不关系,咱们应用read_table,它能够从各类文本文件中读取数据,经过传入分隔符等参数实现创立。比方正在上一篇验证PCA降维成果的文章傍边,咱们从.data格局的文件傍边读取了数据。该文件傍边列以及列之间的分隔符是空格,而没有是csv的逗号或许是table符。咱们经过传入sep这个参数,指定分隔符就实现了数据的读取。

这个header参数示意文件的哪些行作为数据的列名,默许header=0,也即会将第一行作为列名。假如数据傍边没有存正在列名,需求指定header=None,不然会孕育发生成绩。咱们很少会呈现需求用到多级列名的状况,以是普通状况下最罕用的就是取默许值或许是令它等于None。

正在一切这些创立DataFrame的办法傍边最罕用的就是最初一种,从文件读取。由于咱们做机械学习或许是参与kaggle傍边的一些较量的时分,往往数据都是现成的,以文件的方式给咱们应用,需求咱们本人创立数据的状况很少。假如是正在实际的工作场景,尽管数据没有会存正在文件傍边,然而也会有一个泉源,普通是会存储正在一些年夜数据平台傍边,模子从这些平台傍边猎取训练数据。

以是总体来讲,咱们很少应用其余创立DataFrame的办法,咱们有所理解,着重把握从文件读取的办法便可。

罕用操作

上面引见一些pandas的罕用操作,这些操作是我正在不零碎学习pandas的应用办法以前就曾经理解的。理解的缘由也很简略,由于它们太罕用了,能够说是必知必会的知识性内容

查看数据

咱们正在jupyter傍边执交运行DataFrame的实例会为咱们打出DataFrame中一切的数据,假如数据行数过多,则会以省略号的方式省略两头的局部。关于数据量很年夜的DataFrame,咱们普通没有会间接这样输入展现,而是会抉择展现此中的前几条或许是后几条数据。这里就需求用到两个api。

展现前若干条数据的办法叫做head,它承受一个参数,容许咱们制订让它从头开端展现咱们指定条数的数据。

既然有展现后面若干条天然也有展现最初若干条的api,这样的api叫做tail。经过它咱们能够查看DataFrame最初指定条数的数据:

列的增删改查

后面咱们已经提到过,关于DataFrame而言,它其实相称于Series组分解的dict。既然是dict咱们天然能够依据key值猎取指定的Series。

DataFrame傍边有两种办法猎取指定的列,咱们能够经过.加列名的形式或许也能够经过dict查找元素的形式来查问:

咱们也能够同时读取多列,假如是多列的话,只支持一种办法就是经过dict查问元素的办法。它容许接纳传入一个list,能够查找出这个list傍边的列对应的数据。前往的后果是这些新的列组成的新DataFrame。

咱们能够用del删除了一个咱们没有需求的列

咱们要创立一个新的列也很简略,咱们能够像是dict赋值同样,间接为DataFrame赋值便可:

赋值的工具并非只能是实数,也能够是一个数组

咱们要修正某一列也十分简略,也是经过赋值同样的办法笼罩原数据便可。

转成numpy数组

有时分咱们应用pandas没有不便,想要猎取它对应的原始数据,能够间接应用.values猎取DataFrame对应的numpy数组:

因为正在DataFrame傍边每一一列独自一个类型,而转化成numpy的数组之后一切数据同享类型。那末pandas会为一切的列找一个通用类型,这就是为何常常会失去一个object类型的缘由。以是正在应用.values以前最佳先查看一下类型,保障一下没有会由于类型而犯错。

总结

正在明天的文章傍边咱们理解了DataFrame与Series的关系,也学习了一些DataFrame的根底以及罕用的用法。尽管DataFrame能够近似算作是Series组分解的dict,但实际上它作为一个独自的数据构造,也领有许多本人的api,支持许多花式的操作,是咱们解决数据强无力的对象。

有业余机构做过统计,关于一个算法工程师而言,约莫70%的工夫会被投入正在数据的解决上。真正编写模子、调参的工夫可能没有到20%,从这傍边咱们能够看到数据解决的须要性以及首要水平。正在Python畛域傍边,pandas是数据解决最佳用的手术刀以及对象箱,心愿各人都能将它把握。

想理解更多编程学习,敬请存眷php培训栏目!

以上就是应用pandas进行数据解决之 DataFrame篇的具体内容,更多请存眷资源魔其它相干文章!

标签: Python python教程 python编程 python使用问题 pandas DataFrame

抱歉,评论功能暂时关闭!