欢迎光临散文网 会员登陆 & 注册

Pandas学习<一>

2022-11-08 21:47 作者:生信小院  | 我要投稿


Python作为现如今最常用的编程语言,以其易于上手和模块丰富而著称。在笔者使用python进行数据分析时,常常会面临各种表格和数据的读取、操作、输出以及数据的可视化。Pandas作为一个非常高效的python数据处理模块,以其简便性和实用性而受到欢迎。恰巧笔者最近在处理数据过程中需要较多的使用pandas进行数据处理。结合当前可能仍有许多人(高手请自行忽略)对这一模块不是特别了解,所以笔者尝试从数据读取、数据初级检索、数据的高级操作、数据可视化三个方面对这一模块进行解读。另一方面,考虑到对于大多数人而言,数据处理过程中最常用的文件格式是excel、txt和csv,因此本文在后续的介绍中也将以这三类格式的文件为主。事实上,pandas模块擅长处理各种不同格式的数据,远不止本文介绍的那么单调。所以如果读者想要更多的了解这个模块,(强烈)建议去此模块的官方网站(https://github.com/pandas-dev/pandas/)进行进一步探索。由于这个系列更多的以笔者的工作需要为主,无法涵盖所有内容,有所疏漏(不仅有,还很多),还请读者谅解。

本文作为系列开篇的第一章,主要从数据读取和数据初级检索这两个方面来进行介绍。

对于python而言,无论何种模块,首先需要做的就是安装(自己动手,丰衣足食)。在命令行下安装模块的命令如下(可能会安装其他依赖的包):

安装了之后,我们首先需要做的就是加载模块,而加载模块的命令为(后面代码中以>>开头表示在python IDE中输入的命令行)。

值得注意的是pandas可以读取多种类型的文件,读者可以通过下表看出。

只是对于excel、txt和csv三种格式的文件而言, read_excel、read_csv和read_table三个函数就足以应付大部分的情况了。

read_excel函数常用于读取excel文件。该函数最常用到的参数是sheet_name、header、names、index_col和usecols。sheet_name参数指定用于读取excel的sheet编号;header参数用于指定作为列名的列索引;name参数通过赋值来指定列名(在不指定header的情况下);index_col参数用于指定作为行名的行索引,usecols参数则指定可以被读进Pandas table对象的列的集合。

read_csv函数用于读取csv文件。该函数最常用的参数是sep、delimiter 、header、names、index_col和usecols。与read_excel函数包含相同的参数就不再一一介绍,而新的参数如sep用于分隔符使用(delimiter与sep含义相同)。

read_table函数用于读取txt文件。该函数与read_csv函数的参数基本一致。使用可以参考read_csv函数。

了解完函数之后,我们需要使用这些函数去读取文件。对于pandas而言,数据格式仅仅有两种类型。一是系列,以一维标记的同质的数组;二是数据框,通常是2维的,其中每行或者每列代表一个系列。

接下来,我们就从代码上来解读如何读取一个文件(为方便演示,笔者准备了Test_file.xlsx)。

首先,通过pd.read_excel函数读取文件。通过print函数显示数据格式。从下面的结果可以看出,数据为8*4的二维数组。

读取完数据之后,如何精确定位到某一行、某一列或者某个元素,方便对选中的行、列或者元素进行操作呢?Pandas提供了包括[]、loc和iloc三种方式在内的多种函数用以对数据进行操作。下面,我将以[]、loc和iloc三种方式为主,通过多个命令去简略介绍一下如何快速定位数据和增添数据。只是读者如果想要了解更多,可以去官方网站上进行进一步探索。

命令一:通过列标签选择单列。

命令二:通过列标签选择双列或多列。

命令三:通过行索引选择行。

命令四:通过行标签选择行。

命令五:通过行索引选择行。

命令六:通过列标签和行索引选择元素。

命令七:通过列与行的索引选择元素。

命令八:通过lambda函数对指定列元素进行筛选,并返回一个所有符合条件的列元素所在行索引的行。

命令九:通过index属性返回行的属性。

命令十:通过行索引和列标签寻找数据。

命令十一:以单列数据为样本,进行随机抽样。

命令十二:通过新列名(’E’)来增加数据。

命令十三: 通过新列名(’R9’)来增加数据。

通过上述命令,可以对pandas读取数据以及对数据的基本操作有了一个简单的理解。但是更多更实用的技能仍需要读者通过自己写脚本实践,从而进一步的掌握。

上述的所有命令我已经整理成Learn_of_pandas_part1.ipynb文档放在我的github网站上(网址是https://github.com/wangjun258/Learn_of_pandas_part1),欢迎读者在jupyter notebook继续实践。

三 惯例小结

更高阶的使用指南也详见下面的官方号

本公众号开发的相关软件,Multi-omics Hammer软件和Multi-omics Visual软件欢迎大家使用。文末是本公众号在其他平台的账户,也欢迎大家关注并多提意见。


简书:WJ的生信小院


公众号:生信小院


博客园:生信小院


最后,也欢迎各位大佬能够在本平台上:1传播和讲解自己发表的论文;2:发表对某一科研领域的看法;3:想要达成的合作或者相应的招聘信息;4:展示自己以寻找博后工作或者博士就读的机会;5:博导提供博后工作或者博士攻读机会,都可以后台给笔者留言。希望本平台在进行生信知识分享的同时,能够成为生信分析者的交流平台,能够实现相应的利益互补和双赢(不一定能实现,但是梦想总得是有的吧)。


另外,怎么说呢,投。。。。。。币也可,不强求,但奢求 



Pandas学习<一>的评论 (共 条)

分享到微博请遵守国家法律