默认行为是为未对齐的序列结构生成索引的并集。 这是可取的,因为信息可以保留而不是丢失。 在本书的下一章中,我们将处理 Pandas 中缺失的值。 数据帧 数据帧是一个二维标签数组。...它的大小可变:可以插入和删除列。 序列/数据帧中的每个轴都有索引,无论是否默认。 需要索引才能快速查找以及正确对齐和连接 Pandas 中的数据。...使用ndarrays/列表字典 在这里,我们从列表的字典中创建一个数据帧结构。 键将成为数据帧结构中的列标签,列表中的数据将成为列值。 注意如何使用np.range(n)生成行标签索引。...列表索引器用于选择多个列。 一个数据帧的多列切片只能生成另一个数据帧,因为它是 2D 的。 因此,在后一种情况下返回的是一个数据帧。...由于并非所有列都存在于两个数据帧中,因此对于不属于交集的数据帧中的每一行,来自另一个数据帧的列均为NaN。
Ayoung Atiches 0 4 Billy Bonder 1 5 Brian Black 2 6 Bran Balwner 3 7 Bryce Brice 4 8 Betty Btisan # 将两个数据帧按列连接...现在,我们将创建一个“宽的”数据帧,其中行数按患者编号,列按观测编号,单元格值为得分值。...重索引序列和数据帧 # 导入模块 import pandas as pd import numpy as np # 创建亚利桑那州南部的火灾风险序列 brushFireRisk = pd.Series...1.0 NaN 将数据帧保存为 CSV # 导入模块 import pandas as pd raw_data = {'first_name': ['Jason', 'Molly', 'Tina'...数据结构 # 导入模块 import pandas as pd 序列 101 序列是一维数组(类似 R 的向量)。
Series 创建序列 访问序列 DataFrame 创建DataFrame 访问DataFrame 列处理 行处理 panel 创建Panel 从panel中选择数据 基本方法速查 Series...pandas处理以下数据结构: 系列(Series) 数据帧(DataFrame) 面板(Panel) 说实话,第三种我也没接触过。...数据结构 外形尺寸 描述 序列 1 1D标记的同质阵列,sizeimmutable。 数据帧 2 一般的二维标签,大小可变的表格结构,具有潜在的非均匀类型列。...(说白了就是数组) 生成Series: import numpy as np import pandas as pd s = pd.Series([1, 3, 5, np.nan, 6, 8])...dtype:dtype用于数据类型。如果没有,将推断数据类型 copy:复制数据,默认为false。
我们将一个对象传递给包含将添加到现有对象中的数据的方法。 如果我们正在使用数据帧,则可以附加新行或新列。 我们可以使用concat函数添加新列,并使用dict,序列或数据帧进行连接。...8390-98e16a8a1f34.png)] 我还可以通过有效地创建多个数据帧将新列添加到此数据帧。...总结 在本章中,我们介绍了 Pandas 并研究了它的作用。 我们探索了 Pandas 序列数据帧并创建了它们。 我们还研究了如何将数据添加到序列和数据帧中。 最后,我们介绍了保存数据帧。...如果有序列或数据帧的元素找不到匹配项,则会生成新列,对应于不匹配的元素或列,并填充 Nan。 数据帧和向量化 向量化可以应用于数据帧。...我们将创建一个dict,其中每个列均包含一个序列,而该序列在数据帧中缺少信息,这些序列将类似于我们先前生成的序列: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qy6i7C1W
因此,当你没有定义索引时,Pandas 会像这样为你生成一个。 现在看数据集,你能看到连接其他列的列吗? Day列适合这个东西!...我倾向于将数据库数据直接倒入 Pandas 数据帧中,执行我想要执行的操作,然后将数据显示在图表中,或者以某种方式提供数据。 最后,如果我们想重新命名其中一列,该怎么办?...因为共有列包含相同的数据和相同的索引,所以组合这些数据帧要高效得多。 一个另外的例子是附加一个序列。 鉴于append的性质,你可能会附加一个序列而不是一个数据帧。 至此我们还没有谈到序列。...在for循环中,将数据帧的列重命名为我们的缩写。...接下来,我们可以获取所有的数据,将这个新的数据集添加到数据帧中,现在我们真的上路了。
一、Pandas 基础 在本章中,我们将介绍以下内容: 剖析数据帧的结构 访问主要的数据帧组件 了解数据类型 选择单列数据作为序列 调用序列方法 与运算符一起使用序列 将序列方法链接在一起 使索引有意义...数据帧的数据(值)始终为常规字体,并且是与列或索引完全独立的组件。 Pandas 使用NaN(不是数字)来表示缺失值。 请注意,即使color列仅包含字符串值,它仍使用NaN表示缺少的值。...二、数据帧基本操作 在本章中,我们将介绍以下主题: 选择数据帧的多个列 用方法选择列 明智地排序列名称 处理整个数据帧 将数据帧方法链接在一起 将运算符与数据帧一起使用 比较缺失值 转换数据帧操作的方向...许多秘籍将与第 1 章,“Pandas 基础”中的内容类似,这些内容主要涵盖序列操作。 选择数据帧的多个列 选择单个列是通过将所需的列名作为字符串传递给数据帧的索引运算符来完成的。...更多 可以比较来自同一数据帧的两列以生成布尔序列。 例如,我们可以确定具有演员 1 的 Facebook 点赞数比演员 2 更多的电影的百分比。
给定一个 DataFrame, shift() 函数可被用来创建数据列的副本,然后 push forward (NaN 值组成的行添加到前面)或者 pull back(NaN 值组成的行添加到末尾)。...我们可以定义一个由 10 个数字序列组成的伪时间序列数据集,该例子中,DataFrame 中的单个一列如下所示: from pandas import DataFrame df = DataFrame(...由于新的一行不含数据,可以用 NaN 来表示“无数据”。 Shift 函数能完成该任务。我们可以把处理过的列插入到原始序列旁边。...The series_to_supervised() 函数 给定理想的输入、输出序列长度,我们可以用 Pandas 里的 shift() 函数自动生成时间序列问题的框架。 这是一个很有用的工具。...函数返回一个单个的值: return: 序列的 Pandas DataFrame 转为监督学习。 新数据集创建为一个 DataFrame,每一列通过变量字数和时间步命名。
如果丢失的数据是由数据帧中的非NaN表示的,那么应该使用np.NaN将其转换为NaN,如下所示。...df.replace('', np.NaN) missingno 库 Missingno 是一个优秀且简单易用的 Python 库,它提供了一系列可视化,以了解数据帧中缺失数据的存在和分布。...将pandas导入为 pd import pandas as pd import missingno as msno df = pd.read_csv('xeek_train_subset.csv')...其他列(如WELL、DEPTH_MD和GR)是完整的,并且具有最大的值数。 矩阵图 如果使用深度相关数据或时间序列数据,矩阵图是一个很好的工具。它为每一列提供颜色填充。...如果在零级将多个列组合在一起,则其中一列中是否存在空值与其他列中是否存在空值直接相关。树中的列越分离,列之间关联null值的可能性就越小。
一个数据帧代表一个或多个按索引标签对齐的Series对象。 每个序列将是数据帧中的一列,并且每个列都可以具有关联的名称。...创建数据帧期间的行对齐 选择数据帧的特定列和行 将切片应用于数据帧 通过位置和标签选择数据帧的行和列 标量值查找 应用于数据帧的布尔选择 配置 Pandas 我们使用以下导入和配置语句开始本章中的示例.../-/raw/master/docs/learning-pandas-2e/img/00195.jpeg)] 使用[]和.insert()添加新列 可以使用[]运算符将新列添加到数据帧。...下面将PER列与随机数据的序列相加。 由于这使用对齐方式,因此有必要使用与目标数据帧相同的索引。...结果数据帧将由两个列的并集组成,缺少的列数据填充有NaN。 以下内容通过使用与df1相同的索引创建第三个数据帧,但只有一个列的名称不在df1中来说明这一点。
具体来说,我们将检查: 对序列或数据帧创建和使用索引 用索引选择值的方法 在索引之间移动数据 重新索引 Pandas 对象 对序列或数据帧创建和使用索引 索引可以显式创建,也可以让 Pandas 隐式创建...下面的屏幕截图通过创建一个数据帧并将其值转换为category的第二列来说明这一点,该数据帧的一列然后是第二列。...在本节中,我们将研究其中的许多内容,包括: 在数据帧或序列上执行算术 获取值的计数 确定唯一值(及其计数) 查找最大值和最小值 找到 n 个最小和 n 个最大的值 计算累计值 在数据帧或序列上执行算术...可以使用+,-,/和*运算符在数据帧(和序列)上执行算术运算。...内置于 Pandas 中的是这些描述性统计操作的几类,它们可以应用于序列或数据帧。
Pandas 包含一些有用的调整,但是:对于一元操作,如取负和三角函数,这些ufunc将保留输出中的索引和列标签,对于二元操作,如加法和乘法,将对象传递给ufunc时,Pandas 将自动对齐索引。...序列中的索引对齐 例如,假设我们正在组合两个不同的数据源,并且按照面积,找到美国前三的州,并且按人口找到美国前三的州: area = pd.Series({'Alaska': 1723337, 'Texas...(非数字),这就是 Pandas 标记缺失数据的方式(请在“处理缺失数据”中参阅缺失数据的进一步讨论)。...), subtract() * mul(), multiply() / truediv(), div(), divide() // floordiv() % mod() ** pow() 通用函数:数据帧和序列之间的操作...0.0 NaN 1 -1.0 NaN 2.0 NaN 2 3.0 NaN 1.0 NaN 索引和列的保留和对齐意味着,Pandas 中的数据操作将始终维护数据上下文,这可以防止在处理原始 NumPy
六、索引对齐 在本章中,我们将介绍以下主题: 检查索引对象 生成笛卡尔积 索引爆炸 用不相等的索引填充值 追加来自不同数据帧的列 突出显示每一列的最大值 用方法链复制idxmax 寻找最常见的最大值 介绍...另见 Pandas Index的官方文档 生成笛卡尔积 每当两个序列或数据帧与另一个序列或数据帧一起操作时,每个对象的索引(行索引和列索引)都首先对齐,然后再开始任何操作。...让我们将此结果作为新列添加到原始数据帧中。...更多 将单行添加到数据帧是相当昂贵的操作,如果您发现自己编写了将单行数据附加到数据帧的循环,那么您做错了。...在内部,pandas 将序列列表转换为单个数据帧,然后进行追加。 将多个数据帧连接在一起 通用的concat函数可将两个或多个数据帧(或序列)垂直和水平连接在一起。
Pandas 是 Python 中最广泛使用的数据分析和操作库。它提供了许多功能和方法,可以加快 「数据分析」 和 「预处理」 步骤。...通过将 isna 与 sum 函数一起使用,我们可以看到每列中缺失值的数量。...它可以对顺序数据(例如时间序列)非常有用。 8.删除缺失值 处理缺失值的另一个方法是删除它们。以下代码将删除具有任何缺失值的行。...df[['Geography','Exited','Balance']].sample(n=6).reset_index(drop=True) 17.将特定列设置为索引 我们可以将数据帧中的任何列设置为索引...我发现使用 Pandas 创建基本绘图更容易,而不是使用其他数据可视化库。 让我们创建平衡列的直方图。 ? 26.减少浮点数小数点 pandas 可能会为浮点数显示过多的小数点。
行切片 附加行 append 删除行 drop 数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列 数据帧(DataFrame)的功能特点: 潜在的列是不同的类型 大小可变 标记轴...(行和列) 可以对行和列执行算术运算 pandas.DataFrame 构造函数: pandas.DataFrame(data, index, columns, dtype, copy) 编号 参数...4 dtype 每列的数据类型。 5 copy 如果默认值为False,则此命令(或任何它)用于复制数据。...创建DataFrame Pandas数据帧(DataFrame)可以使用各种输入创建 列表 字典 系列(Series) Numpy ndarrays 另一个数据帧(DataFrame) 列表 import...4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print df.iloc[2] 行切片 附加行 append 使用append()函数将新行添加到
,list,constants 2 index 索引值必须是唯一的和散列的,与数据的长度相同 默认np.arange(n)如果没有索引被传递 3 dtype dtype用于数据类型 如果没有,将推断数据类型...s 0 5 1 5 2 5 3 5 dtype: int64 ---- 二、pandas.DataFrame 数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列...数据帧(DataFrame)的功能特点: 潜在的列是不同的类型 大小可变 标记轴(行和列) 可以对行和列执行算术运算 构造函数: pandas.DataFrame(data, index, columns...4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print df.iloc[2] 行切片 附加行 append 使用append()函数将新行添加到...) major_axis axis 1,它是每个数据帧(DataFrame)的索引(行) minor_axis axis 2,它是每个数据帧(DataFrame)的列 pandas.Panel(data
CSV:最常用的数据格式 Pickle:用于序列化和反序列化Python对象结构 MessagePack:类似于json,但是更小更块 HDF5:一种常见的跨平台数据储存文件 Feather:一个快速、...size_mb:带有序列化数据帧的文件的大小 save_time:将数据帧保存到磁盘所需的时间 load_time:将先前转储的数据帧加载到内存所需的时间 save_ram_delta_mb:在数据帧保存过程中最大的内存消耗增长...对比 现在开始对前文介绍的5种数据格式进行比较,为了更好地控制序列化的数据结构和属性我们将使用自己生成的数据集。 下面是生成测试数据的代码,我们随机生成具有数字和分类特征的数据集。...将五个随机生成的具有百万个观测值的数据集转储到CSV中,然后读回内存以获取平均指标。并且针对具有相同行数的20个随机生成的数据集测试了每种二进制格式。...同时使用两种方法进行对比: 1.将生成的分类变量保留为字符串 2.在执行任何I/O之前将其转换为pandas.Categorical数据类型 1.以字符串作为分类特征 下图显示了每种数据格式的平均I/O
比如: Pandas shift() 函数 对于把时间序列数据转化为监督学习问题,这是一个关键的函数。...给定一个 DataFrame, shift() 函数可被用来创建数据列的副本,然后 push forward (NaN 值组成的行添加到前面)或者 pull back(NaN 值组成的行添加到末尾)。...由于新的一行不含数据,可以用 NaN 来表示“无数据”。 Shift 函数能完成该任务。我们可以把处理过的列插入到原始序列旁边。 运行该例子,使数据集有了两列。...The series_to_supervised() 函数 给定理想的输入、输出序列长度,我们可以用 Pandas 里的 shift() 函数自动生成时间序列问题的框架。 这是一个很有用的工具。...函数返回一个单个的值: return: 序列的 Pandas DataFrame 转为监督学习。 新数据集创建为一个 DataFrame,每一列通过变量字数和时间步命名。
比如: Pandas shift() 函数 对于把时间序列数据转化为监督学习问题,这是一个关键的函数。...给定一个 DataFrame, shift() 函数可被用来创建数据列的副本,然后 push forward (NaN 值组成的行添加到前面)或者 pull back(NaN 值组成的行添加到末尾)。...由于新的一行不含数据,可以用 NaN 来表示 “无数据”。 Shift 函数能完成该任务。我们可以把处理过的列插入到原始序列旁边。 运行该例子,使数据集有了两列。...The series_to_supervised() 函数 给定理想的输入、输出序列长度,我们可以用 Pandas 里的 shift() 函数自动生成时间序列问题的框架。 这是一个很有用的工具。...函数返回一个单个的值: return: 序列的 Pandas DataFrame 转为监督学习。 新数据集创建为一个 DataFrame,每一列通过变量字数和时间步命名。
之前我们了解了numpy的一些基本用法,在这里简单的介绍一下pandas的数据结构。 一、Pandas数据结构 Pandas处理有三种数据结构形式:Series,DataFrame, index。...pandas.Series( data, index=index, dtype, copy) data: 可以是多种类型,如列表,字典,标量等 index: 索引值必须是唯一可散列的,与数据长度相同,...,则要用于结果帧的索引是可选缺省值np.arrange(n)。...dtype: 每列的数据类型 1) 创建一个空的DataFrame # 创建一个空的DataFrame import pandas as pd df = pd.DataFrame() print(df...NaN d NaN 4 21.0 NaN """ 删除列: # 删除列 d = {'one':pd.Series([1,2,3], index=['a','b','c']),
领取专属 10元无门槛券
手把手带您无忧上云