列和索引用于特定目的,即为数据帧的列和行提供标签。 这些标签允许直接轻松地访问不同的数据子集。 当多个序列或数据帧组合在一起时,索引将在进行任何计算之前首先对齐。 列和索引统称为轴。...Pandas 严重依赖 NumPy 库,该库允许进行向量化计算,也可以对整个数据序列进行操作而无需显式编写for循环。 每个操作都返回一个具有相同索引的序列,但其值已被运算符修改。...明智地排序列名称 最初将数据集导入为数据帧之后要考虑的首要任务之一是分析列的顺序。 这个基本任务经常被忽略,但是可以在分析进行中产生很大的不同。 计算机没有优先选择列顺序,计算也不受影响。...例如,当在describe数据帧方法中使用include参数时,可以传递形式对象 NumPy / pandas 对象或其等效字符串表示形式的列表。...更多 可以将列名列表传递给nlargest/nsmallest方法的columns参数。 仅当在列表的第一列中存在重复的值共享第 n 个排名位的情况时,这才对打破关系有用。
当以某种方式组合多个序列或数据帧时,在进行任何计算之前,数据的每个维度会首先自动在每个轴上对齐。...如果max_dept_sal在其索引中重复了任何部门,则该操作将失败。 例如,让我们看看当我们在具有重复索引值的等式的右侧使用数据帧时会发生什么。...在对 Pandas 进行分组时,通常使用具有离散重复值的列。...如前面的秘籍“将多个变量存储为列值时进行整理”秘籍所述,当在index参数中使用多个列时,我们必须使用pivot_table来旋转数据帧。 旋转后,Group和Year变量卡在索引中。...如您所见,当在其索引上对齐多个数据帧时,concat通常比合并好得多。 在第 9 步中,我们切换档位以关注merge具有优势的情况。merge方法是唯一能够按列值对齐调用和传递的数据帧的方法。
现在,顺序混合了。 考虑我们要求的索引。 会发生什么? 一方面,我们可以说最后一个命令将基于索引进行选择。 因此它将选择元素 2 和 4; 他们之间什么都没有。...数据帧的算术 数据帧之间的算术与序列或 NumPy 数组算术具有某些相似之处。 如您所料,两个数据帧或一个数据帧与一个缩放器之间的算术工作; 但是数据帧和序列之间的算术运算需要谨慎。...六、排序,索引和绘图 现在让我们简要介绍一下使用 pandas 方法对数据进行排序。 在本章中,我们将研究排序和排名。 排序是将数据按各种顺序排列,而排名则是查找数据如果经过排序将位于哪个顺序中。...让我们首先看一下索引排序。 我们可以使用sort_index方法重新排列数据帧的行,以使行索引按顺序排列。 我们还可以通过将sort_index的访问参数设置为1来对列进行排序。...当在数据帧上调用时,每一列都将单独排名,结果将是一个包含等级的数据帧。 现在,让我们看看这个排名。
数据分析 数据分析是从数据创建含义的过程。 具有量化含义的数据通常称为信息。 数据分析是通过创建数据模型和数学模型来从数据中创建信息的过程。 它经常与数据操作重叠,并且两者之间的区别并不总是很清楚。...变量 在对 Pandas 进行数据建模时,我们将对一个或多个变量进行建模,并寻找值之间或多个变量之间的统计意义。 变量的定义不是编程语言中的变量,而是统计变量之一。...例如,以下内容返回温度差的平均值: Pandas 数据帧 Pandas Series只能与每个索引标签关联一个值。 要使每个索引标签具有多个值,我们可以使用一个数据帧。...如果需要一个带有附加列的新数据帧(保持原来的不变),则可以使用pd.concat()函数。 此函数创建一个新的数据帧,其中所有指定的DataFrame对象均按规范顺序连接在一起。...当索引值的意义不大并且您只希望将具有顺序递增的整数的级联数据用作索引时,这很有用: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lFEXN2Dm-1681365384146
今天人们希望在更短的时间内下载更多的数据(如看哔哩哔哩视频、抖音、文件下载等),同样,人们也希望能在更小的空间存储更多的数据,即当在同一传输速率下,文件越小则下载越快,所以为了文件能传输更快更小,我们需要对其数据进行压缩传输...压缩时,除了最后一个字母之外,其他所有字符被字典中的索引代替。 最后,将索引和最后一个字母插入压缩字符串,比如ABBB,在字典中找到ABB和它的索引4,得到的压缩字符串就是4B。...离散余弦变换(Discrete Cosine Transform,DCT)是一类函数变换,可以将一个信号(或图像)转换为其傅里叶变换(或频域)的一种类似形式,即此种变换改变了64个值以使相邻像素之间的关系得以保持...它是一种非常高效的图像压缩技术,具有良好的信号表示性能。...帧发送顺序为:I,P,B,B,P,B,B,I。 WeiyiGeek.MPEG帧 MPEG 编码过程 分为三个主要步骤:图像或视频的量化、分块和编码。
具体来说,我们将检查: 对序列或数据帧创建和使用索引 用索引选择值的方法 在索引之间移动数据 重新索引 Pandas 对象 对序列或数据帧创建和使用索引 索引可以显式创建,也可以让 Pandas 隐式创建...均值,中位数和众数) 计算方差,标准差,协方差和相关性 执行数据离散化和量化 计算值的排名 计算序列中每个样本的百分比变化 执行滚动窗口操作 执行数据随机抽样 配置 Pandas 我们将使用标准的 Pandas...数据处于错误的规范化级别 数据重复 这是一个完整的列表,我向您保证它不完整。...数据的形状已更改,现在有其他行或列,在重塑时无法确定 可能还有更多原因,但是总的来说,这些情况的确会发生,作为 Pandas 用户,您将需要解决这些情况才能进行有效的数据分析 让我们开始研究如何通过创建具有一些缺失数据点的数据帧来处理缺失数据...请注意,删除重复项时会保留索引。 重复记录可能具有不同的索引标签(在计算重复项时不考虑标签)。 因此,保留的行会影响结果DataFrame对象中的标签集。 默认操作是保留重复项的第一行。
一、向量化操作的概述 对于文本数据的处理(清洗),是现实工作中的数据时不可或缺的功能,在这一节中,我们将介绍Pandas的字符串操作。...向量化的操作使我们不必担心数组的长度和维度,只需要关系操作功能,尤为强大的是,除了支持常用的字符串操作方法,还集成了正则表达式的大部分功能,这使得pandas在处理字符串列时,具有非常大的魔力。...除了上面介绍的Pandas字符串的正常操作和正则表达式外,Pandas的str属性还提供了其他的一些方法,这些方法非常的有用,在进行特征提取或者数据清洗时,非常高效,具体如下: 方法 说明 get()...获取元素索引位置上的值,索引从0开始 slice() 对元素进行切片取值 slice_replace() 对元素进行切片替换 cat() 连接字符串 repeat() 重复元素 normalize()...要禁用对齐,请在 others 中的任何系列/索引/数据帧上使用 .values。
,但仍然主要是用于数值计算,尤其是内部集成了大量矩阵计算模块,例如基本的矩阵运算、线性代数、fft、生成随机数等,支持灵活的广播机制 pandas主要用于数据处理与分析,支持包括数据读写、数值计算、数据处理...、数据分析和数据可视化全套流程操作 pandas主要面向数据处理与分析,主要具有以下功能特色: 按索引匹配的广播机制,这里的广播机制与numpy广播机制还有很大不同 便捷的数据读写操作,相比于numpy...其中,由于pandas允许数据类型是异构的,各列之间可能含有多种不同的数据类型,所以dtype取其复数形式dtypes。...与[ ]访问类似,loc按标签访问时也是执行范围查询,包含两端结果 at/iat,loc和iloc的特殊形式,不支持切片访问,仅可以用单个标签值或单个索引值进行访问,一般返回标量结果,除非标签值存在重复...由于pandas是带标签的数组,所以在广播过程中会自动按标签匹配进行广播,而非类似numpy那种纯粹按顺序进行广播。
还可以在 pandas 中找到与排序相关的其他数据操作(例如,按一个或多个列对数据表进行排序)。 唯一值和其他集合逻辑 NumPy 具有一些用于一维 ndarrays 的基本集合操作。...fill_value 重新索引时引入缺失数据时要使用的替代值。当您希望缺失标签在结果中具有空值时,请使用fill_value="missing"(默认行为)。...,因此还有一个iloc运算符,它仅使用整数进行索引,以便在索引包含整数或不包含整数时始终保持一致: In [139]: obj1.iloc[[0, 1, 2]] Out[139]: 2 1 0...算术和数据对齐 pandas 可以使处理具有不同索引的对象变得更简单。例如,当您添加对象时,如果任何索引对不相同,结果中的相应索引将是索引对的并集。...类似于method="min",但等级总是在组之间增加 1,而不是在组中相等元素的数量之间增加 具有重复标签的轴索引 到目前为止,我们看过的几乎所有示例都具有唯一的轴标签(索引值)。
和 Series 之间的运算 2.9 函数应用和映射 2.10 排序和排名 2.11 带有重复标签的轴索引 3.汇总和计算描述统计 3.1 相关系数与协方差 3.2 唯一值、值计数以及成员资格 ---...i处,并得到新的Index is_monotonic 当各元素均大于等于前一个元素时,返回True is_unique 当Index没有重复值时,返回True unique 计算Ilndex中唯一值的数组...Index会被完全使用,就像没有任何复制一样 method 插值(填充)方式 fill_value 在重新索引的过程中,需要引入缺失值时使用的替代值 limit 前向或后向填充时的最大填充量 tolerance...---- 2.6 算术运算和数据对齐 Pandas 最重要的一个功能是,它可以对不同索引的对象进行算术运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。...先来看一个具有启发性的例子,计算一个二维数组与其某行之间的差: import pandas as pd arr = np.arange(12.).reshape((3,4)) print(arr)
通用函数:索引对齐 对于两个Series或DataFrame对象的二元操作,Pandas 将在执行操作的过程中对齐索引。这在处理不完整数据时非常方便,我们将在后面的一些示例中看到。...2 9.0 3 5.0 dtype: float64 ''' 数据帧中的索引对齐 在DataFrames上执行操作时,列和索引都会发生类似的对齐: A = pd.DataFrame(rng.randint...,无论它们在两个对象中的顺序如何,并且结果中的索引都是有序的。...执行DataFrame和Series之间的操作时,与之相似,索引和列是保持对齐的。...(参见“数据计算:广播”),二维数组与其中一行之间的减法是逐行应用的。
name属性在将序列对象组合到数据帧结构等任务中很有用。 使用标量值 对于标量数据,必须提供索引。 将为尽可能多的索引值重复该值。...当我们希望重新对齐数据或以其他方式选择数据时,有时需要对索引进行操作。 有多种操作: set_index-允许在现有数据帧上创建索引并返回索引的数据帧。...当我们按多个键分组时,得到的分组名称是一个元组,如后面的命令所示。 首先,我们重置索引以获得原始数据帧并定义一个多重索引以便能够按多个键进行分组。...如果我们的数据帧具有多重索引,则可以使用groupby按层次结构的不同级别分组并计算一些有趣的统计数据。...使用melt函数 melt函数使我们能够通过将数据帧的某些列指定为 ID 列来转换它。 这样可以确保在进行任何重要的转换后,它们始终保持为列。
从这个简化的案例中你可以看到(见上面的 "full outer join 全外链"),与关系型数据库相比,Pandas在保持行的顺序方面是相当灵活的。...如果要merge的列不在索引中,而且你可以丢弃在两个表的索引中的内容,那么就使用merge,例如: merge()默认执行inner join Merge对行顺序的保持不如 Postgres 那样严格...同时保持了左边DataFrame的索引值和行的顺序不变。...当有两个以上的参数时,情况会变得更加复杂。 自然,应该有一个简单的方法来在这些格式之间进行转换。而Pandas为它提供了一个简单方便的解决方案:透视表。...为了方便,pivot_table可以计算小计和大计: 一旦创建,数据透视表就变成了一个普通的DataFrame,所以它可以使用前面描述的标准方法进行查询: 当与MultiIndex一起使用时,数据透视表特别方便
NumPy 数组完胜列表的最简单例子是算术运算: 除此之外,NumPy 数组的优势和特点还包括: 更紧凑,尤其是当维度大于一维时; 当运算可以向量化时,速度比列表更快; 当在后面附加元素时,速度比列表慢...在进行测试时,我们通常需要生成随机数组: 向量索引 一旦你的数组中有了数据,NumPy 就能以非常巧妙的方式轻松地提供它们: 除了「花式索引(fancy indexing)」外,上面给出的所有索引方法都被称为...「view」:它们并不存储数据,也不会在数据被索引后发生改变时反映原数组的变化情况。...它们硬编码了 (y,x,z) 的索引顺序,即 RGB 图像的顺序: NumPy 使用 (y,x,z) 顺序的示意图,堆叠 RGB 图像(这里仅有两种颜色) 如果你的数据布局不同,使用 concatenate...最后,还有一个函数能避免你在处理多维数组时使用太多训练,还能让你的代码更简洁——einsum(爱因斯坦求和): 它会沿重复的索引对数组求和。
output: # Series([], dtype: float64) (2)使用ndarray创建Series 使用ndarray作为数据时,传递的索引必须与ndarray具有相同的长度。...,索引顺序保持不变,缺少的元素使用NaN(不是数字)填充。...,则必须提供索引,会重复标量值以匹配索引的长度。...DataFrame 使用ndarray、list组成的字典作为数据创建DataFrame时,所有的ndarray、list必须具有相同的长度。...drop函数进行行删除, 如果标签重复,则会删除多行。
它可以对顺序数据(例如时间序列)非常有用。 8.删除缺失值 处理缺失值的另一个方法是删除它们。以下代码将删除具有任何缺失值的行。...12.Groupby 函数 Pandas Groupby 函数是一个多功能且易于使用的功能,可帮助获取数据概述。它使浏览数据集和揭示变量之间的基本关系更加容易。 我们将做几个组比函数的示例。...df[['Geography','Exited','Balance']].sample(n=6).reset_index(drop=True) 17.将特定列设置为索引 我们可以将数据帧中的任何列设置为索引...23.数据类型转换 默认情况下,分类数据与对象数据类型一起存储。但是,它可能会导致不必要的内存使用,尤其是当分类变量具有较低的基数。 低基数意味着列与行数相比几乎没有唯一值。...在计算时间序列或元素顺序数组中更改的百分比时,它很有用。
1.表现,速度以及记忆效率 正如我们所知,pandas是使用numpy建立的,并非有意设计为数据帧库的后端。因为这个原因,pandas的主要局限之一就是较大数据集的内存处理。...浏览 pyarrow 支持的数据类型和 numpy 数据类型之间的等效性实际上可能是一个很好的练习,以便您学习如何利用它们。 现在也可以在索引中保存更多的 numpy 数值类型。...这意味着在启用写入时复制时,某些方法将返回视图而不是副本,这通过最大限度地减少不必要的数据重复来提高内存效率。 这也意味着在使用链式分配时需要格外小心。...此外,我们可以进一步调查对数据进行的分析类型:对于某些操作,1.5.2 和 2.0 版本之间的差异似乎可以忽略不计。...本科曾混迹于计算机专业,后又在心理学的道路上不懈求索。在学习过程中越来越发现数据分析的应用范围之广,希望通过所学输出一些有意义的工作,很开心加入数据派大家庭,保持谦逊,保持渴望。
3)可视化数据分布:条形图,直方图,箱型图等。 4)计算并可视化展示变量之间的相关性(关系):热图 (heatmap)。...将每个 CSV 文件转换为 Pandas 数据帧对象如下图所示: ? 检查数据 & 清理脏数据 在进行探索性分析时,了解您所研究的数据是很重要的。幸运的是,数据帧对象有许多有用的属性,这使得这很容易。...为了与当前的任务保持一致,我们可以使用 .drop() 方法删除多余的列,如下所示: ? 现在所有的数据都具有相同的维度! 不幸的是,仍有许多工作要做。...为了合并数据而没有错误,我们需要对齐 “state” 列的索引,以便在数据帧之间保持一致。我们通过对每个数据集中的 “state” 列进行排序,然后从 0 开始重置索引值: ?...使用 Pandas 中的 pd.to_csv() 方法: ? 设置 index = False 保存没有索引值的数据。 是时候可视化呈现数据了!
还可以进行更一般的矢量化操作。...③ 选择与索引c对应的值。 ④ 选择与索引a和d对应的两个值。 ⑤ 通过索引位置选择第二行和第三行。 ⑥ 计算单列的总和。 ⑦ 使用apply()方法以向量化方式计算平方。...② 做同样的事情,但忽略了索引。 ③ 具有与第一个相同的效果,并且… ④ 第二个追加操作,分别。 连接 在连接这两个数据集时,DataFrame 对象的顺序也很重要,但方式不同。...② 右连接与颠倒 DataFrame 对象的顺序相同。 ③ 内连接仅保留那些在两个索引中都找到的索引值。 ④ 外连接保留来自两个索引的所有索引值。 也可以基于空的 DataFrame 对象进行连接。...合并 虽然连接操作是基于要连接的 DataFrame 对象的索引进行的,但合并操作通常是在两个数据集之间共享的列上进行的。
领取专属 10元无门槛券
手把手带您无忧上云