我们知道Series对象在几种方面与列表和字典的相似之处。也就意味着我们可以使用索引运算符。现在我们来说明如何使用两种特定于pandas的访问方法:.loc和.iloc。...五、查询数据集 现在我们已经了解了如何根据索引访问大型数据集的子集。现在,我们继续基于数据集列中的值选择行以查询数据。例如,我们可以创建一个DataFrame仅包含2010年之后打过的比赛。...我们可以在初始数据清理阶段添加列或删除列,也可以稍后基于分析的见解来添加和删除列。...CSV文件来创建new时,Pandas会根据其值将数据类型分配给每一列。...如果我们为列选择正确的数据类型,则可以显着提高代码的性能。我们再看一下nba数据集的列: >>> df.info() ? 有十列具有数据类型object。
本附注的结构: 导入数据 导出数据 创建测试对象 查看/检查数据 选择查询 数据清理 筛选、排序和分组 统计数据 首先,我们需要导入pandas开始: import pandas as pd 导入数据...我们还可以使用df.to_excel()保存和写入一个DataFrame到Excel文件或Excel文件中的一个特定表格。...选择 在训练机器学习模型时,我们需要将列中的值放入X和y变量中。...sort_values ()可以以特定的方式对pandas数据进行排序。...计算性别分组的所有列的平均值 average = df.groupby(‘Sex’).agg(np.mean) ? 统计数据 我们可能熟悉Excel中的数据透视表,可以轻松地洞察数据。
但是,info这个方法对要分析的最大列数是有默认限制的,并且如果数据集中有null,那么在大数据集计数统计时会非常慢。...比如,在分析有 150 个特征的数据集时,我们可以设置display.max_info_columns为涵盖所有列的值,比如将其设置为 200: pd.set_option('display.max_info_columns...', 200) 在分析大型数据集时,df.info()由于要计算所有null,导致速度很慢。...因此我们可以简单地设置display.max_info_rows为一个小的值来避免计数,例如只在行数不超过5时才计数null: pd.set_option('display.max_info_rows'...pd.set_option('display.max_info_rows', 5) # info计数null时的阈值 pd.describe_option() #展示所有设置和描述 pd.reset_option
当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。...记住 在选择数据子集时,使用方括号[]。 在这些括号内,您可以使用单个列/行标签、列/行标签列表、标签切片、条件表达式或冒号。 使用loc选择特定行和/或列时,请使用行和列名称。...使用iloc选择特定行和/或列时,请使用表中的位置。 您可以基于loc/iloc分配新值给选择。 转到用户指南 用户指南页面提供了有关索引和选择数据的完整概述。...当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 在使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。...使用iloc选择特定行和/或列时,请使用表中的位置。 您可以根据loc/iloc的选择分配新值。 前往用户指南 用户指南页面提供了有关索引和选择数据的完整概述。
此参数还有另一个优点,如果你有一个同时包含字符串和数字的列,那么将其类型声明为字符串是一个好选择,这样就可以在尝试使用此列作为键去合并表时不会出错。...dropna = False #如果你要统计数据中包含的缺失值。...缺失值的数量 构建模型时,你可能希望排除具有很多缺失值或全是缺失值的行。你可以使用.isnull()和.sum()来计算指定列中缺失值的数量。...选择具有特定ID的行 在SQL中,我们可以使用SELECT * FROM ... WHERE ID( A001 , C022 ,...)来获取具有特定ID的记录。...如果列同时包含缺失值和整数,则数据类型仍将是float而不是int。导出表时,可以添加float_format = %。0f 将所有浮点数舍入为整数。
此参数还有另一个优点,如果你有一个同时包含字符串和数字的列,那么将其类型声明为字符串是一个好选择,这样就可以在尝试使用此列作为键去合并表时不会出错。...']) 选择仅具有数字特征的子数据帧。...缺失值的数量 构建模型时,你可能希望排除具有很多缺失值或全是缺失值的行。你可以使用.isnull()和.sum()来计算指定列中缺失值的数量。 1....选择具有特定ID的行 在SQL中,我们可以使用SELECT * FROM ... WHERE ID('A001','C022',...)来获取具有特定ID的记录。...如果列同时包含缺失值和整数,则数据类型仍将是float而不是int。导出表时,可以添加float_format ='%。0f'将所有浮点数舍入为整数。
导读 Pandas是当前Python数据分析中最为重要的工具,其提供了功能强大且灵活多样的API,可以满足使用者在数据分析和处理中的多种选择和实现方式。...对于上述仅有一种聚合函数的例子,在pandas中更倾向于使用groupby直接+聚合函数,例如上述的分组计数需求,其实就是groupby+count实现。...用字典传入聚合函数的形式下,统计结果都是一个dataframe,更进一步的说当传入字典的value是聚合函数列表时,结果中dataframe的列名是一个二级列名。 ? ?...实际上,这是应用了pandas中apply的强大功能,具体可参考历史推文Pandas中的这3个函数,没想到竟成了我数据处理的主力。...05 总结 本文针对一个最为基础的聚合统计场景,介绍pandas中4类不同的实现方案,其中第一种value_counts不具有一般性,仅对分组计数需求适用;第二种groupby+聚合函数,是最为简单和基础的聚合统计
pandas导入与设置 一般在使用pandas时,我们先导入pandas库。...import pandas as pd pandas在默认情况下,如果数据集中有很多列,则并非所有列都会显示在输出显示中。...也就是说,500意味着在调用数据帧时最多可以显示500列。 默认值仅为50。此外,如果想要扩展输显示的行数。...df.info():提供数据摘要,包括索引数据类型,列数据类型,非空值和内存使用情况。 df.describe():提供描述性统计数据。...df['Contour'].isnull().sum():返回'Contour'列中的空值计数 df['pH'].notnull().sum():返回“pH”列中非空值的计数 df['Depth']
2.查询特定列的数据 有的时候我们只想查看某几列的数据。在pandas里可以使用中括号或者loc,iloc等多种方式进行列选择,可以选择一列或多列。...SQL里只需写相应的列名即可,举例如下,实际操作一下更容易理解,选择一种自己习惯的即可。(点击图片可以查看大图) ? ? 3.查询特定列去重后的数据 例如我们想查看一共有多少人(去重过的)下过单。...前面提到的count是一种聚合函数,表示计数,除此外还有sum表示求和,max,min表示最大最小值等。pandas和SQL都支持聚合操作。例如我们求每个uid有多少订单量。...它更常见于SQL场景中,可能会用于分组,可能会用于赋值,也可能用于其他场景。分组,比如按照一定的分数区间分成优良中差。赋值,比如当数值小于0时,按照0计算。我们来举例看一下分组的场景。...pandas中,可以使用前文提到的方式进行选择操作,之后可以直接对目标列进行赋值,SQL中需要使用update关键字进行表的更新。示例如下:将年龄小于20的用户年龄改为20。
], name='Squares') 现在,让我们打电话给系列,这样我们就可以看到pandas的作用: s 我们将看到以下输出,左列中的索引,右列中的数据值。...列下方是有关系列名称和组成值的数据类型的信息。...Python词典提供了另一种表单来在pandas中设置Series。 DataFrames DataFrame是二维标记的数据结构,其具有可由不同数据类型组成的列。...在我们的示例中,这两个系列都具有相同的索引标签,但如果您使用具有不同标签的Series,则会标记缺失值NaN。 这是以我们可以包含列标签的方式构造的,我们将其声明为Series'变量的键。...处理缺失值 通常在处理数据时,您将缺少值。pandas软件包提供了许多不同的方法来处理丢失的数据,这些null数据是指由于某种原因不存在的数据或数据。
index 和 columns 属性来访问: 注意 当传递一组特定列以及数据字典时,传递的列将覆盖字典中的键。...我们将在重新索引部分中讨论重新索引/符合新标签集的基础知识。 数据对齐和算术 DataFrame对象之间的数据对齐会自动在**列和索引(行标签)**上对齐。同样,结果对象将具有列和行标签的并集。...index和columns属性来访问: 注意 当与数据字典一起传递了特定列集时,传递的列将覆盖字典中的键。...属性可以访问行和列标签: 注意 当特定的列集与数据字典一起传递时,传递的列会覆盖字典中的键。...数据对齐和算术 DataFrame 对象之间的数据对齐会自动在列和索引(行标签)上进行对齐。同样,结果对象将具有列和行标签的并集。
在底层的设计中,pandas按照数据类型将列分组形成数据块(blocks)。pandas使用ObjectBlock类来表示包含字符串列的数据块,用FloatBlock类来表示包含浮点型列的数据块。...对于包含数值型数据(比如整型和浮点型)的数据块,pandas会合并这些列,并把它们存储为一个Numpy数组(ndarray)。Numpy数组是在C数组的基础上创建的,其值在内存中是连续存储的。...(2), object(6) memory usage: 151.5 MB 2.1 子类型优化数值型列 pandas中的许多数据类型具有多个子类型,比如,float型就有float16、float32和...在object列中的每一个元素实际上都是存放内存中真实数据位置的指针。 category类型在底层使用整型数值来表示该列的值,而不是用原值。Pandas用一个字典来构建这些整型数据到原数据的映射关系。...当一列只包含有限种值时,这种设计是很不错的。当我们把一列转换成category类型时,pandas会用一种最省空间的int子类型去表示这一列中所有的唯一值。 ? object数据类型 ?
使用高效的数据类型 默认的 pandas 数据类型并不是最节省内存的。特别是对于具有相对少量唯一值的文本数据列(通常称为“低基数”数据),这一点尤为明显。...使用高效的数据类型 默认的 pandas 数据类型不是最节省内存的。对于具有相对少量唯一值的文本数据列(通常称为“低基数”数据),这一点尤为明显。...这些数据结构不一定是典型的“大部分为 0”的稀疏数据。相反,您可以将这些对象视为“压缩的”,其中任何与特定值匹配的数据(NaN / 缺失值,尽管可以选择任何值,包括 0)都被省略。...此命名空间提供了特定于稀疏数据的属性和方法。...NumPy 类型的NA类型提升 当通过 reindex() 或其他方式将 NAs 引入现有的 Series 或 DataFrame 时,布尔值和整数类型将被提升为不同的数据类型以存储 NA。
背景 在数据分析过程中,我们经常需要了解数据框的结构和基本信息。pandas 提供了多种工具来帮助我们完成这一任务,其中 info() 函数就是一个非常有用的工具。...引言 pandas.info() 函数是 pandas 库中的一个方法,用于快速了解 DataFrame 的基本信息,包括索引类型、列数、非空值计数和数据类型等。这对于数据预处理和分析非常重要。...memory_usage:布尔值,决定是否显示内存使用情况。 null_counts:布尔值,决定是否显示空值计数。 2. 代码示例 下面是一个实际的代码示例,展示了如何使用 info() 函数。...详细参数分析 3.1 verbose 参数 verbose 参数决定是否显示所有列的信息。当数据框有大量列时,默认情况下 info() 可能不会显示所有列。...df.info(memory_usage=True) 3.3 null_counts 参数 null_counts 参数在 pandas 1.0.0 版之后被弃用。它决定是否显示每列的空值计数。
这样得到的累积值在某些情况下意义不大,因为我们更需要不同小组的累计数据。对于这个问题有一个非常简单方便的解决方案,我们可以同时应用groupby和cumsum函数。...Isin 在处理数据帧时,我们经常使用过滤或选择方法。Isin是一种先进的筛选方法。例如,我们可以根据选择列表筛选数据。...下述代码实现选择前三行前两列的数据(loc方式): df.loc[:2,['group','year']] ? 注:当使用loc时,包括索引的上界,而使用iloc则不包括索引的上界。...Describe describe函数计算数字列的基本统计信息,这些列包括计数、平均值、标准偏差、最小值和最大值、中值、第一个和第三个四分位数。因此,它提供了dataframe的统计摘要。 ?...inner:仅在on参数指定的列中具有相同值的行(如果未指定其它方式,则默认为 inner 方式) outer:全部列数据 left:左一dataframe的所有列数据 right:右一dataframe
Pandas是一个强大的分析结构化数据的工具集,它的使用基础是Numpy,用于数据挖掘和数据分析,同时也具有数据清洗功能。...未来的版本中将提高到3.6,在不管什么时候开始学习,可以选择使用最新版的Python和Pandas。...Pandas数据结构 Series 在Pandas中,最常用的就是数据结构就是Series和DataFrame。Series是带标签的一维数组,可以储存的数字、字符串等常见对象。...内连接得到两个对象中都有的数据,对象A中a列和对象B中的a列都有1。左连接以对象A的a列为准,对象B中a列中没有的值,则取空。右连接则以对象B的a列为准。外连接则查询出全部的数据。...可以直观的看出,count()按照a列的值计数,值为1的有2个,值为2,3的有1个。Sum()操作在实际应用场景中通过会用于按照月份或者年度统计销售额等等。
列和索引用于特定目的,即为数据帧的列和行提供标签。 这些标签允许直接轻松地访问不同的数据子集。 当多个序列或数据帧组合在一起时,索引将在进行任何计算之前首先对齐。 列和索引统称为轴。...当列表具有与行和列标签相同数量的元素时,此分配有效。 以下代码在每个索引对象上使用tolist方法来创建 Python 标签列表。...当像上一步那样将数字列彼此相加时,pandas 将缺失值默认为零。 但是,如果缺少特定行的所有值,则 Pandas 也会将总数也保留为丢失。...当从数据帧调用这些相同的方法时,它们会立即对每一列执行该操作。 准备 在本秘籍中,我们将对电影数据集探索各种最常见的数据帧属性和方法。...例如,当列具有int64类型时,每个单独的列值也都是int64。 对于对象数据类型的列,情况并非如此。 每个单独的列值可以是任何类型。
Pandas 是 Python 中最广泛使用的数据分析和操作库。它提供了许多功能和方法,可以加快 「数据分析」 和 「预处理」 步骤。...我们减了 4 列,因此列数从 14 个减少到 10 列。 2.选择特定列 我们从 csv 文件中读取部分列数据。可以使用 usecols 参数。...23.数据类型转换 默认情况下,分类数据与对象数据类型一起存储。但是,它可能会导致不必要的内存使用,尤其是当分类变量具有较低的基数。 低基数意味着列与行数相比几乎没有唯一值。...例如,地理列具有 3 个唯一值和 10000 行。 我们可以通过将其数据类型更改为"类别"来节省内存。...在计算时间序列或元素顺序数组中更改的百分比时,它很有用。
领取专属 10元无门槛券
手把手带您无忧上云