Python
文章平均质量分 85
Python 实战应用
名本无名
生物信息工程师,日常工作: Python 和 R 数据处理、分析及可视化等。还有其他。。。
展开
-
Python 数据处理 —— pandas 表格样式
讲到这里,Python的数据处理部分已经写的差不多了。学完了前面的部分,差不多已经能够熟练的处理各种各样的数据了。在本系列的最后,我们将介绍如何展示数据,当然,并不是数据的可视化,而是像Excel表格一样,设置数据的颜色、字体、大小等样式在pandas中,通过属性,可以获取一个Styler对象,该对象提供了方法,让我们很方便的格式化和展示DataFrame数据样式的设置是通过CSS来完成,所以,所有的代码需要在中运行:逐元素是将函数应用于每个元素上的函数接受一个标量值,返回一个属性-值对的。原创 2023-11-30 16:28:36 · 716 阅读 · 0 评论 -
Python 数据处理 —— pandas 分组聚合
我们所说的group by拆分:根据指定的标准对数据进行切割,并分为不同的组别应用:分别在每个组中应用函数组合:将所有的结果组合为数据结构在这些步骤中,拆分是最直接的。而事实上,多数情况下,我们可能希望将数据集分成若干组,并对这些分组进行一些操作在应用函数的步骤中,我们可能希望进行以下操作聚合:为每个分组应用一个或多个汇总函数,例如:计算分组的和或均值计算分组的转换:为不同的分组执行不同的计算,并返回类似索引的对象,例如:在组内进行标准化(zscore填充每个分组中的NA值。原创 2023-11-30 16:27:28 · 248 阅读 · 0 评论 -
Python 数据处理 —— pandas 文本数据处理
有一套字符串处理方法,可以方便地对数组的每个元素进行操作,最重要的是,这些方法会自动忽略缺失值。只要两个对象中存在缺失值,对应的结果中也是缺失值,除非指定了。符号直接按位置进行索引,如果索引超过字符串的长度,结果将是。:正则表达式中的任何捕获组名称都将用作列名,否则将使用捕获组号。例如,我们删除列名的前后空格,并将其改为小写字母,同时用。参数也可以是二维的,但是得保证其行数必须与调用的对象一致。可以是类似列表的对象,但是其长度需要和调用对象一致。,可以从混乱的字符串序列中提取出有规则的信息。原创 2023-11-30 16:25:45 · 230 阅读 · 0 评论 -
Python 数据处理 —— pandas 数据重塑
这些函数会自动处理缺失值,并且不希望层次索引中的每个子组具有相同的标签集,同时它们也可以处理未排序的索引。形式,以时间序列作为索引,变量名作为列名 ,索引与列名所标识的值是对应的观察值,更加有利于我们的分析。假设我们现在想对变量进行时间序列分析,但是,这种数据的表现形式显然是不利于我们进行分析的。如果你想包含所有的类别信息,即使实际数据不包含任何特定类别的实例,你可以设置。参数,且除了指定为索引和列名的列之外,剩余的列超过一个,则输出的结果。如果对应标签的值不存在,默认会使用填充为缺失值,如。原创 2023-11-30 16:24:19 · 261 阅读 · 0 评论 -
Python 数据处理 —— pandas 合并连接之 merge
参数传递的字符串可以是列名或索引级别名称,这就可以在不重置索引的情况下,对索引级别和列名进行组合,合并两个。或标准关系代数中,如果一个连接键在两张表中出现一次以上,那么生成的表将具有相关数据的笛卡尔积。:如果用于连接的字符串名称既匹配了索引级别名,又匹配了列名,将会引发一个警告,并有效使用列名。在合并操作之前检查键的唯一性,可以防止内存溢出,也是确保用户数据结构符合预期的一种好方法。显然,你可以选择自己认为的更简便的方式,对于多对一的连接,使用。参数也接受字符串,在这种情况下,将使用传递的字符串的值作为。原创 2023-11-30 16:22:37 · 234 阅读 · 0 评论 -
Python 数据处理 —— pandas 合并连接之 concat
pandas提供了各种工具,可以轻松地将不同的Series或DataFrame连接、合并在一起此外,pandas还提供了比较两个Series或DataFrame对象差异的实用工具。原创 2023-11-30 16:20:56 · 539 阅读 · 0 评论 -
Python 数据处理 —— pandas 索引类型
这是一个围绕分类的容器,允许高效地索引和存储具有大量重复元素的索引。重新索引操作将根据所传递索引器的类型返回结果索引。中的一个基本的索引。这是一个不可变的数组,实现了一个有序的、可切片的集合。沿着区间的边缘进行基于标签的索引,就像你期望的那样,选择那个特定的区间。的索引,但是数据是以浮点数的形式记录的。下面是使用这种索引的一个典型的例子。方法处理的输入范围更窄,所以它的性能比华丽的索引快得多。方法,用于沿着给定的轴并按给定的索引获取所有元素。这个给定的索引必须是一个列表或整数索引位置的。原创 2023-11-26 19:35:06 · 108 阅读 · 0 评论 -
Python 数据处理 —— pandas 高级索引
的时候,最好同时指定索引(行)和标签(列),因为在某些情况下,传递的索引可能会被解析为两个轴而不是。或者换句话说,元组是横向的,列表是纵向的。想要获取第一个级别的某一标签的所有元素,并不需要传递元组,例如。中,当涉及到索引时,元组和列表的处理方式并不相同。选择该级别的所有内容,没有指定索引的级别默认为。方法的推广,允许你在一个步骤中排列分层索引级别。通常,切片的两段都会包括在内,因为这是标签索引。您可以使用布尔索引器来进行与值相关的选择。通过提供一个元组切片,选择范围内的值。参数,以在某一个轴上传递切片。原创 2023-11-26 19:34:01 · 92 阅读 · 0 评论 -
Python 数据处理 —— pandas 分层索引
本节将介绍使用多级索引(分层索引)和其他高级索引技巧MultiIndex会保留索引的所有已经定义了的级别,尽管它们实际上可能并没有被使用。在对索引进行切片时,您可能会注意到这一点。例如这样做的目的是为了避免重新计算级别,以提高切片的性能。如果你只想看某一级别,可以使用方法Out[31]:可以使用方法重构MultiIndex。原创 2023-11-26 19:33:20 · 151 阅读 · 0 评论 -
Python 数据处理 —— pandas 索引和选择
前言pandas 对象的轴标签信息有很多用途,如利用标识符来标识数据能够显式的和自动对齐数据获取和设置数据子集在本节中,我们主要关注最后一点,如何对数据切片以及获取和设置数据对象(Series 和 DataFrame)的子集。1 索引方法pandas 目前支持三种多轴索引:.loc:主要是配合标签使用,但是也可与布尔数组一起使用。.loc 会在找不到对应的数据项目时引发 KeyError。允许的输入有单个标签,如 5 或 a(注意,这里的 5 是索引标签的值,并不是 0 起始原创 2023-11-26 19:30:44 · 414 阅读 · 0 评论 -
Python 数据处理 —— pandas SQL 查询
模块封装了一组查询方法,既方便了数据检索,又减少了对特定数据库API的依赖。如果安装了SQLAlchemySQLAlchemy将会提供对数据库的抽象。此外,你还需要安装对应数据库的驱动库。例如,PostgreSQL对应psycopg2库,MySQL对应pymysql库。而SQLite默认已经包含在标准库中。如果没有安装SQLAlchemy,则仅支持sqlite。# 将 SQL 数据表读入 DataFrame# 将 SQL 查询读入 DataFrame。原创 2023-11-25 15:01:32 · 597 阅读 · 0 评论 -
Python 数据处理 —— pandas HDF5 读写查询
HDF, 层级数据格式),是设计用来存储和组织大量数据的一组文件格式(HDF4HDF5HDF5允许您存储大量的数值数据,同时能够轻松、快速地访问数据。数千个数据集可以存储在一个文件中,可以根据需要进行分类和标记。原创 2023-11-25 15:00:27 · 391 阅读 · 0 评论 -
Python 数据处理 —— pandas Excel 文件读写
中的日期),你可以使用 parse_dates 关键字将这些字符串解析为日期时间格式。是一个字符串列表,则假定每个字符串都对应于文件的列名或从文档标题行推断出来的列名。请注意,如果所有工作表都使用相同的解析参数,则可以将工作表名称列表简单地传递给。关键字指定整个列的类型,该关键字通过将字典的名称映射到列,值对应列的类型。文件的名称,第二个可选参数是数据写入到的工作表的名称。是可调用函数,传入的是列名,返回可调用函数计算结果为。默认将所有数字存储为浮点数,在不损失精度的情况下,例如,要将列转换为布尔值。原创 2023-11-25 14:55:33 · 614 阅读 · 0 评论 -
Python 数据处理 —— pandas HTML 表格读写
默认情况下,将数字列转换为数字类型,并且前导零会丢失。为了避免这种情况,我们可以将这些列转换为字符串。解析器会抛出异常,最好的方式是指定一个解析器列表。默认情况下将使行标签加粗,但你可以关闭它。文件的内容,并将其作为字符串传递给。当只提供了一个解析器时,如果解析失败,中的元素用于形成列索引,如果。字符串、文件或URL,并将。的输出(会损失浮点数的精度)请注意,这些类附加到现有的。因此,要获得没有转义字符的。使用列表指定要跳过的行数(的单元格添加超链接的能力。并匹配包含特定文本的表。内容中仅包含一个表,原创 2023-11-25 14:54:23 · 559 阅读 · 0 评论 -
Python 数据处理 —— pandas json 文件读写
在系列的第一节中,我们介绍了如何使用Python的标准库json来读写json格式文件本节,我们将介绍pandas提供的JSON格式的文件和字符串的读写操作。一个Series或DataFrame可以使用to_json方法转换为有效的JSON字符串。orientSeries:默认为index,可选择DataFrame:默认为columns,可选择: 日期转换类型,epoch表示timestampiso表示ISO8601: 浮点值的小数位数,默认为10: 强制将字符串编码为ASCII,默认为True。原创 2023-11-25 14:53:02 · 472 阅读 · 0 评论 -
Python 数据处理 —— pandas csv 文件读写
前言前面我们介绍了 pandas 的基础语法操作,下面我们开始介绍 pandas 的数据读写操作。pandas 的 IO API 是一组顶层的 reader 函数,比如 pandas.read_csv(),会返回一个 pandas 对象。而相应的 writer 函数是对象方法,如 DataFrame.to_csv()。下面列出了所有的 reader 和 writer 函数注意:后面会用到 StringIO,请确保导入# python3from io import StringIO# pyt原创 2023-11-25 14:51:13 · 823 阅读 · 0 评论 -
Python 数据处理 —— pandas 数据类型
有时候你的数据大部分都是正确的类型,但是可能有很少一部分不一致的类型,你可能希望将其标记为缺失值而不是引发异常。数据对象在一列中包含多种数据类型,将会自动选择一种能够容纳所有数据类型的类型(即向上转换)。当与其他类型混合时,类型会隐式向上转换,这意味着它们从当前类型提升为另一种类型,例如。返回的数组的类型是出现次数最多的类型,因此这可能会发生一些强制的转换。时,如果在转换类型时遇到任何错误,它将简单地返回转换成功的数据。将某些列转换为指定的类型时,将会发生向上转换。原创 2023-11-25 14:44:07 · 399 阅读 · 0 评论 -
Python 数据处理 —— pandas 排序
方法修改数据不会带来任何副作用,几乎所有方法都返回一个新对象,而原始对象保持不变。方法,会复制底层数据(不包括轴索引,因为轴索引不可变),并返回一个新的对象。的名称一样,则会发出警告,并且列名优先。参数来接受一个可调用的函数,会将其应用于要排序的值上。:几乎不需要复制对象。每列的名称或类型可用于将不同的函数应用于不同的列。参数可用于指定需要排序的一列或多列。按索引排序还支持接受可调用函数的。参数,以将其应用于要排序的索引。的值,应该返回具有相同形状的。参数的字符串可以列名或索引的。需要明确的一点是,使用。原创 2023-11-25 14:43:09 · 673 阅读 · 0 评论 -
Python 数据处理 —— 迭代与时间日期访问器
8. 迭代Pandas 对象基于类型进行迭代操作。Series 迭代时被视为数组,每次迭代生成值。DataFrame 则遵循字典遍历方式,用对象的 key 进行迭代操作。总之,对于基础迭代(for i in object)会产生:Series:值DataFrame:列名例如,对 DataFrame 进行迭代会获取到列名In [254]: df = pd.DataFrame( .....: {"col1": np.random.randn(3), "col2": np.rand原创 2023-11-24 11:24:35 · 40 阅读 · 0 评论 -
Python 数据处理 —— pandas 重置索引标签
如果编写的代码对性能要求较高的话,预先对齐的数据操作会更快。如果传递的是函数,则该函数必须返回一个值(并且必须生成一组唯一的值)。在后面的多级索引和高级索引方式中我们将会介绍更加简便的重置索引方式。如果传入的映射不包含索引和列名标签,则它不会被重命名。里最基本的数据对齐方法,该方法执行标签对齐功能。方法是同时对齐两个对象的最快方法,它还支持。,虽然下面的方法也可以实现,但不太明显也不太干净。,轴标签的索引可以在对象之间共享。,映射中的多出来的标签不会触发异常。,它返回一个带有两个重置索引的。原创 2023-11-24 11:23:30 · 1369 阅读 · 0 评论 -
Python 数据处理 —— pandas 应用函数
使用.agg()我们可以扩展类似于内建函数describe的功能Out[184]:A B C。原创 2023-11-24 11:22:46 · 152 阅读 · 0 评论 -
Python 数据处理 —— pandas 统计描述
例如,我们可以将一些正态分布的数据切成大小相等的四分位数,如下所示。方法可用于统计多个列之间的组合的数目。默认情况下会使用所有列,但可以使用。通过结合广播行为/算术运算,可以非常简洁地描述各种统计过程。只会把汇总限制在仅包括数字的列,如果没有数字列,则仅统计分类列。将给出一个简单的总结,包括唯一值和最常出现的值的数量。上存在大量的统计描述函数以及其他相关的运算函数。参数来控制需要包含/排除的数据类型列表,而。每列的各种汇总统计信息(当然,并不会统计。函数可以计算最小值和最大值对应的索引。原创 2023-11-24 11:21:30 · 131 阅读 · 0 评论 -
Python 数据处理 —— panda 基础操作
在这里,我们将会讨论很多pandas数据结构所共有的基本功能函数先让我们来创建一个示例对象顾名思义,我们可以通过head()和tail()函数,快速访问Series或DataFrame的前面和后面几行数据。默认只显示5行,也可以指定需要显示的行数。原创 2023-11-24 11:20:13 · 115 阅读 · 0 评论 -
Python 数据处理 —— pandas 数据结构
前言对于如何使用 R 来处理表格数据,相信你已经学习到很多了。下面我们的重点是介绍如何在 Python 中处理表格型数据,提到 Python 数据处理,那就不得不说 pandas 了。pandas 是 Python 数据处理的核心库,提供了快速、灵活、明确的数据结构,能够简单直接地处理结构性和关系型数据。panda 适用于很多不同类型的数据:具有不同类型的列的表格数据,如 Excel 和 SQL 表有序和无序(不一定是固定频率)的时间序列数据具有行和列标签的任意矩阵数据(同类型或异构数据)原创 2023-11-24 11:19:00 · 235 阅读 · 0 评论 -
Python 图片格式转换
图片格式转换可以利用各种软件今天介绍一下如何使用Python实现各种图片格式的转换。原创 2023-10-27 11:03:57 · 470 阅读 · 0 评论 -
Python 正则表达式(四)
不知不觉,正则表达式已经来到了第四节啦!今天要聊点什么呢?嗯…对了,上节讲到的匹配对象,好像提到过好几次,但是都没讲它是啥。抓紧时间,废话少说,今天就聊聊它吧。匹配对象,顾名思义就是匹配成功所返回的存储了匹配信息的对象如果没有匹配的话会返回None。所以你可以简单的用if语句来判断是否匹配。像match()和search()匹配成功都会返回一个匹配对象if match:返回一个或者多个匹配的子组。如果只有一个参数,结果就是一个字符串如果有多个参数,结果就是一个元组(每个参数对应一个项)原创 2023-10-26 14:09:06 · 22 阅读 · 0 评论 -
Python 正则表达式(三)
前面两节已经介绍了Python正则表达式的语法,接下来我们来看看re模块中各种函数的应用pattern: 正则匹配规则string: 目标字符串flags: 匹配模式扫描整个字符串找到匹配样式的第一个位置,并返回一个相应的匹配对象。如果没有匹配到,就返回None;注意这和找到一个零长度匹配是不同的。参数含义同上如果string开始的0或者多个字符匹配到了正则表达式,就返回一个相应的匹配对象。如果没有匹配到,就返回None;注意它跟零长度匹配是不同的。注意:即使在多行模式下,原创 2023-10-26 14:07:55 · 29 阅读 · 0 评论 -
Python正则表达式(二)
在?后面添加(中的一个或多个),然后加上匹配规则。这些字符对正则表达式设置以下标记,免去设置flag参数'a' ==> re.A(re.ASCII) ==> 只匹配 ASCII 字符'i' ==> re.I(re.IGNORECASE) ==> 忽略大小写'L' ==> re.L(re.LOCALE) ==> 由当前语言区域决定 \w, \W, \b, \B 和大小写敏感匹配,不推荐使用。'm' ==> re.M(re.MULTILINE) ==> 多行模式。原创 2023-10-26 14:07:01 · 25 阅读 · 0 评论 -
Python正则表达式(一)
正则表达式(),就是具有一定规则的表达式。通过正则表达式引擎,将这些规则转换为正则表达式对象,然后再去文本中搜索能够与之匹配的字符串。正则表达式的语法都是一样的,只是不同编程语言的实现不同,大部分都是师从Perl。对Perl语言有所了解的朋友,学习python正则应该是手到擒来。原创 2023-10-26 14:06:04 · 24 阅读 · 0 评论