Pandas是一个用于数据操作和分析的Python库。它建立在 numpy 库之上,提供数据帧的有效实现。数据帧是一种二维数据结构。在数据帧中,数据以表格形式在行和列中对齐。...在本教程中,我们将学习如何创建一个空数据帧,以及如何在 Pandas 中向其追加行和列。...Pandas.Series 方法可用于从列表创建系列。列值也可以作为列表传递,而无需使用 Series 方法。 例 1 在此示例中,我们创建了一个空数据帧。...然后,通过将列名 ['Name', 'Age'] 传递给 DataFrame 构造函数的 columns 参数,我们在数据帧中创建 2 列。...然后,通过将列名称 ['Batsman', 'Runs', 'Balls', '5s', '4s'] 传递给 DataFrame 构造函数的 columns 参数,我们在数据帧中创建了 6 列。
9999 x 12数据集,是使用Faker创建的,我在最后也会提供本文的所有源代码。...而括号符号[]可以灵活地基于条件过滤数据帧,但是如果条件很多的话编写代码是繁琐且容易出错的。...与数值的类似可以在同一列或不同列上使用多个条件,并且可以是数值和非数值列上条件的组合。 除此以外, Pandas中的query()方法还可以在查询表达式中使用数学计算。...我们还可以在一个或多个列上包含一些复杂的计算。...日期时间列过滤 使用query()函数在日期时间值上进行查询的唯一要求是,包含这些值的列应为数据类型dateTime64 [ns] 在示例数据中,OrderDate列是日期时间,但是我们的df其解析为字符串
) 它是一个简单的9999 x 12数据集,是使用Faker创建的,我在最后也会提供本文的所有源代码。...而括号符号[]可以灵活地基于条件过滤数据帧,但是如果条件很多的话编写代码是繁琐且容易出错的。...与数值的类似可以在同一列或不同列上使用多个条件,并且可以是数值和非数值列上条件的组合。 除此以外, Pandas Query()还可以在查询表达式中使用数学计算。...我们还可以在一个或多个列上包含一些复杂的计算。...日期时间列过滤 使用Query()函数在日期时间值上进行查询的唯一要求是,包含这些值的列应为数据类型dateTime64 [ns] 在示例数据中,OrderDate列是日期时间,但是我们的df其解析为字符串
() 它是一个简单的9999 x 12数据集,是使用Faker创建的,我在最后也会提供本文的所有源代码。...而括号符号[]可以灵活地基于条件过滤数据帧,但是如果条件很多的话编写代码是繁琐且容易出错的。...与数值的类似可以在同一列或不同列上使用多个条件,并且可以是数值和非数值列上条件的组合。...我们还可以在一个或多个列上包含一些复杂的计算。...日期时间列过滤 使用Query()函数在日期时间值上进行查询的唯一要求是,包含这些值的列应为数据类型dateTime64 [ns] 在示例数据中,OrderDate列是日期时间,但是我们的df其解析为字符串
/img/e12e7ee1-62dc-46e2-96bc-f1ea0d3d3e68.png)] 将多个过滤条件应用于 Pandas 数据帧 在本节中,我们将学习将多个过滤条件应用于 Pandas 数据帧的方法...重命名和删除 Pandas 数据帧中的列 处理和转换日期和时间数据 处理SettingWithCopyWarning 将函数应用于 Pandas 序列或数据帧 将多个数据帧合并并连接成一个 使用 inplace...将函数应用于 Pandas 序列或数据帧 在本节中,我们将学习如何将 Python 的预构建函数和自构建函数应用于 pandas 数据对象。...接下来,我们了解如何将函数应用于多个列或整个数据帧中的值。 我们可以使用applymap()方法。 它以类似于apply()方法的方式工作,但是在多列或整个数据帧上。...我们学习了如何处理SettingWithCopyWarning,还了解了如何将函数应用于 Pandas 序列或数据帧。 最后,我们学习了如何合并和连接多个数据帧。
目录 Pandas 排序方法入门 准备数据集 熟悉 .sort_values() 熟悉 .sort_index() 在单列上对 DataFrame 进行排序 按升序按列排序 更改排序顺序 选择排序算法...注意:在 Pandas 中,kind当您对多个列或标签进行排序时会被忽略。 当您对具有相同键的多条记录进行排序时,稳定的排序算法将在排序后保持这些记录的原始顺序。...在多列上对 DataFrame 进行排序 在数据分析中,通常希望根据多列的值对数据进行排序。想象一下,您有一个包含人们名字和姓氏的数据集。...按升序按多列排序 要在多个列上对 DataFrame 进行排序,您必须提供一个列名称列表。...通常,这是使用 Pandas 分析数据的最常见和首选方法,因为它会创建一个新的 DataFrame 而不是修改原始数据。这允许您保留从文件中读取数据时的数据状态。
通过将表达式赋值给一个新列(例如df['new column']=expression),可以在大多数情况下轻松创建计算列。然而,有时我们需要创建相当复杂的计算列,这就是本文要讲解的内容。...图1 创建一个辅助函数 现在,让我们创建一个取平均值的函数,并将其处理/转换为字母等级。 图2 现在我们要把这个函数应用到每个学生身上。那么,在列中对每个学生进行循环?不!...pandas applymap()方法 pandas提供了一种将自定义函数应用于列或整个数据框架的简单方法,就是.applymap()方法,这有点类似于map()函数的作用。...注意下面的代码,我们只在包含平均值的三列上应用函数。因为我们知道第一列包含字符串,如果我们尝试对字符串数据应用letter_grade()函数,可能会遇到错误。...图3 我们仍然可以使用map()函数来转换分数等级,但是,需要在三列中的每一列上分别使用map(),而applymap()能够覆盖整个数据框架(多列)。
具体而言,在本章中,我们将涵盖以下主题: 根据 Python 对象,NumPy 函数,Python 字典,Pandas Series对象和 CSV 文件创建DataFrame 确定数据帧大小 指定和操作数据帧中的列名...创建数据帧期间的行对齐 选择数据帧的特定列和行 将切片应用于数据帧 通过位置和标签选择数据帧的行和列 标量值查找 应用于数据帧的布尔选择 配置 Pandas 我们使用以下导入和配置语句开始本章中的示例...由于在创建时未指定索引,因此 Pandas 创建了一个基于RangeIndex的标签,标签的开头为 0。 数据在第二列中,由值1至5组成。 数据列上方的0是该列的名称。...当应用于数据帧时,布尔选择可以利用多列中的数据。...如果需要一个带有附加列的新数据帧(保持原来的不变),则可以使用pd.concat()函数。 此函数创建一个新的数据帧,其中所有指定的DataFrame对象均按规范顺序连接在一起。
/img/00109.jpeg)] 尝试在大型数据帧上应用样式会导致 Jupyter 崩溃,这就是为什么仅将样式应用于数据帧的头部的原因。...我们构建了一个新函数,该函数计算两个 SAT 列的加权平均值和算术平均值以及每个组的行数。 为了使apply创建多个列,您必须返回一个序列。 索引值用作结果数据帧中的列名。...() 另见 请参阅第 4 章,“选择数据子集”中的“同时选择数据帧的行和列”秘籍 Pandas unstack和pivot方法的官方文档 在groupby聚合后解除堆叠 按单个列对数据进行分组并在单个列上执行聚合将返回简单易用的结果...要在每列上迭代应用此函数,请对以下内容使用apply方法: >>> geolocations.apply(pd.to_numeric, errors='ignore') 步骤 4 将城市连接到此新数据帧的前面...在内部,pandas 将序列列表转换为单个数据帧,然后进行追加。 将多个数据帧连接在一起 通用的concat函数可将两个或多个数据帧(或序列)垂直和水平连接在一起。
如果我们想要将相同的函数应用于Pandas数据帧中整个列的值,我们可以简单地使用 .apply()。Pandas数据帧和Pandas系列(数据帧中的一列)都可以与 .apply() 一起使用。...但是,你是否注意到当我们有一个超大数据集时,.apply() 可能会非常慢? 在本文中,我们将讨论一些加速数据操作的技巧,当你想要将某个函数应用于列时。...将函数应用于单个列 例如,这是我们的示例数据集。...因此,要点是,在简单地使用 .apply() 函数处理所有内容之前,首先尝试为您的任务找到相应的 NumPy 函数。 将函数应用于多列 有时我们需要使用数据中的多列作为函数的输入。...或者尝试找到适用于任务的现有NumPy函数。 如果你想要对Pandas数据帧中的多个列使用 .apply(),请尽量避免使用 .apply(,axis=1) 格式。
注意:在 Pandas 中,kind当您对多个列或标签进行排序时会被忽略。 当您对具有相同键的多条记录进行排序时,稳定的排序算法将在排序后保持这些记录的原始顺序。...在多列上对 DataFrame 进行排序 在数据分析中,通常希望根据多列的值对数据进行排序。想象一下,您有一个包含人们名字和姓氏的数据集。...按升序按多列排序 要在多个列上对 DataFrame 进行排序,您必须提供一个列名称列表。...这在其他数据集中可能更有用,例如列标签对应于一年中的几个月的数据集。在这种情况下,按月按升序或降序排列数据是有意义的。 在 Pandas 中排序时处理丢失的数据 通常,现实世界的数据有很多缺陷。...通常,这是使用 Pandas 分析数据的最常见和首选方法,因为它会创建一个新的 DataFrame 而不是修改原始数据。这允许您保留从文件中读取数据时的数据状态。
我们知道现实中的数据通常是杂乱无章的,需要大量的预处理才能使用。Pandas 是应用最广泛的数据分析和处理库之一,它提供了多种对原始数据进行预处理的方法。...在本文中,我们将重点讨论一个将「多个预处理操作」组织成「单个操作」的特定函数:pipe。 在本文中,我将通过示例方式来展示如何使用它,让我们从数据创建数据帧开始吧。...这些就是现实数据中的一些典型问题。我们将创建一个管道来处理刚才描述的问题。对于每个任务,我们都需要一个函数。因此,首先是创建放置在管道中的函数。...只要它将数据帧作为参数并返回数据帧,它就可以在管道中工作。...我们可以将参数和函数名一起传递给管道。 这里需要提到的一点是,管道中的一些函数修改了原始数据帧。因此,使用上述管道也将更新df。 解决此问题的一个方法是在管道中使用原始数据帧的副本。
透视表是一种做多维数据分析的工具,还记得 Pandas 的 split-apply-combine 三部曲吗?首先用 groupby 分组,再平行将某个函数应用到各组上,最后自动连接成一个总表。...pd.pivot_table( df, index=["Counterparty","Trader"] ) 到目前为止,我们只设置了 index,那为什么只在 Price 和 Quantity 两列上做整合呢...aggfunc 参数还可以传进一个字典来实现不同列下应用不同的整合函数,语法如下: aggfunc = {col_1:func_1, col_2:func_2, ... col_n:func_n} pd.pivot_table...np.sum, "Quantity":len}, fill_value=0, margins=True ) 再进一步,不同列还可以应用多个函数...一旦得到最终结果,它本质还是个数据帧,因此可以使用所有标配函数。下例用 query() 函数来查询名叫 Steven Wang 和 Sherry Zhang 的交易员。
GroupBy()的核心,分别是: 第一步:分离(Splitting)原始数据对象; 第二步:在每个分离后的子对象上进行数据操作函数应用(Applying); 第三步:将每一个子对象的数据操作结果合并(...pandas.groupby()实例演示 首先,我们自己创建用于演示的数据,代码如下: import pandas as pd import numpy as np # 生成测试数据 test_data...aggregate对多列操作 除了sum()求和函数外,我们还列举几个pandas常用的计算函数,具体如下表: 函数(Function) 描述(Description) mean() 计算各组平均值 size...同时计算多个结果 可能还有小伙伴问“能不能将聚合计算之后的新的结果列进行重命名呢?”,该操作在实际工作中经常应用的到,如:根据某列进行统计,并将结果重新命名。...在pandas以前的版本中需要自定义聚合操作,如下: # 定义aggregation汇总计算 aggregations = { #在values01列上的操作 'values01': {
另见 Pandas read_csv函数的官方文档 访问主要的数据帧组件 可以直接从数据帧访问三个数据帧组件(索引,列和数据)中的每一个。...通常,这些新列将从数据集中已有的先前列创建。 Pandas 有几种不同的方法可以向数据帧添加新列。 准备 在此秘籍中,我们通过使用赋值在影片数据集中创建新列,然后使用drop方法删除列。...二、数据帧基本操作 在本章中,我们将介绍以下主题: 选择数据帧的多个列 用方法选择列 明智地排序列名称 处理整个数据帧 将数据帧方法链接在一起 将运算符与数据帧一起使用 比较缺失值 转换数据帧操作的方向...Python 算术和比较运算符直接在数据帧上工作,就像在序列上一样。 准备 当数据帧直接使用算术运算符或比较运算符之一进行运算时,每列的每个值都会对其应用运算。...这些布尔值通常存储在序列或 NumPy ndarray中,通常是通过将布尔条件应用于数据帧中的一个或多个列来创建的。
7.1 Pandas 原文:Pandas 译者:飞龙 协议:CC BY-NC-SA 4.0 致谢:这个笔记摘自 Wes McKinney 的著作 《Python 数据分析》(Python for...Data Analysis) 序列(Series) 数据帧(DataFrame) 重索引 删除条目 索引,选择和过滤 算术和数据对齐 函数应用和映射 排序和排名 带有重复值的轴索引 汇总和计算描述性统计量...在DataFrame的列上匹配Series的索引,并向下广播行: ser_8 = df_10.ix[0] df_11 = df_10 - ser_8 df_11 a b c d 0 0.000000...0.000000 1 0.003930 0.406224 0.530438 0.092224 2 0.111226 0.054178 0.013864 0.396653 将 1D 数组上的函数应用于每列...1 4.5 3.0 1.0 2 3.0 4.0 7.0 3 2.0 2.0 4.5 4 4.5 5.5 3.0 5 6.5 7.5 2.0 6 6.5 7.5 4.5 7 8.0 5.5 7.0 在列上
对于了解Excel并且倾向于使用公式来解决此问题的人,第一反应可能是:好的,我将创建一个可能包含FIND函数和LEFT函数或MID函数等的公式,然后向下拖动以将其应用于所有单元格。...虽然在Excel中这样做是可以的,但在Python中这样做从来都不是正确的。上述操作:创建一个公式然后下拉,对于编程语言来说,被称为“循环”。...图4 要在数据框架的列上使用此切片方法,我们可以执行以下操作: 图5 字符串.split()方法 .split()方法允许根据给定的分隔符将文本拆分为多个部分。...那么,如何将其应用于数据框架列?你可能已经明白了,我们使用.str!让我们在“姓名”列中尝试一下,以获得名字和姓氏。...图8 正如预期的那样,由于存在多个列(系列),因此返回的结果实际上是一个数据框架。
8390-98e16a8a1f34.png)] 我还可以通过有效地创建多个数据帧将新列添加到此数据帧。...在下一章中,我们将讨论算术,函数应用和函数映射。 五、Pandas 的算术,函数应用以及映射 我们已经看到了使用 pandas 序列和数据帧完成的一些基本任务。 让我们继续进行更有趣的应用。...必须牢记的是,涉及数据帧的算法首先应用于数据帧的列,然后再应用于数据帧的行。 因此,数据帧中的列将与单个标量,具有与该列同名的索引的序列元素或其他涉及的数据帧中的列匹配。...apply带有一个函数,默认情况下,将该函数应用于与数据帧的每一列相对应的序列。 产生的内容取决于函数的功能。...鉴于apply将在每一列上求值提供的函数,因此应准备接收序列,而applymap将分别在数据帧的每个元素上求值pass函数。
csv 文件前 5000 行的数据帧。...12.Groupby 函数 Pandas Groupby 函数是一个多功能且易于使用的功能,可帮助获取数据概述。它使浏览数据集和揭示变量之间的基本关系更加容易。 我们将做几个组比函数的示例。...df[['Geography','Gender','Exited']].groupby(['Geography','Gender']).mean() 13.Groupby与聚合函数结合 agg 函数允许在组上应用多个聚合函数...df['Geography'].replace({0:'B1',1:'B2'}) 25.绘制直方图 pandas 不是一个数据可视化库,但它使得创建基本绘图变得非常简单。...我发现使用 Pandas 创建基本绘图更容易,而不是使用其他数据可视化库。 让我们创建平衡列的直方图。 ? 26.减少浮点数小数点 pandas 可能会为浮点数显示过多的小数点。
领取专属 10元无门槛券
手把手带您无忧上云