在转换部分中解释了将其转换为这些 dtype 的简单方法。 算术和比较操作中的传播 一般来说,在涉及 NA 的操作中,缺失值会传播。当其中一个操作数未知时,操作的结果也是未知的。...例如,对于逻辑“或”操作(|),如果操作数之一是True,我们已经知道结果将是True,无论另一个值是什么(因此无论缺失值是True还是False)。...在转换部分中解释了将其转换为这些 dtype 的简单方法。 算术和比较操作中的传播 一般来说,在涉及NA的操作中,缺失值会传播。当其中一个操作数未知时,操作的结果也是未知的。...例如,对于逻辑“或”操作(|),如果其中一个操作数为True,我们已经知道结果将是True,无论另一个值是什么(所以无论缺失值是True还是False)。...算术和比较操作中的传播 一般来说,在涉及NA的操作中,缺失值会传播。
# 导入相关库 import numpy as np import pandas as pd 什么是缺失值 在了解缺失值(也叫控制)如何处理之前,首先要知道的就是什么是缺失值?...直观上理解,缺失值表示的是“缺失的数据”。 可以思考一个问题:是什么原因造成的缺失值呢?...: float64 Seriese 使用 dropna 比较简单,对于 DataFrame 来说,可以设置更多的参数。...: float64 除了可以使用标量来填充之外,还可以使用前一个或后一个有效值来填充。...NaN James NaN Andy NaN Alice 30.0 Name: age, dtype: float64 对于 DataFrame,可以指定每列要替换的值
报错信息: Input contains NaN, infinity or a value too large for dtype('float64')....输入值中包含空值,无穷值或超出dtype('float64')的范围! 输入值必须为正数。...报错显示“输入值中包含空值,无穷值或超出dtype('float64')的范围!”,但明明已经填充缺失值了。...包含有限值为False,不包含有限值为True 有网友踩过的坑: 解决方案: 若写出以下方式就会报错,因为此处只是输出x_fillna填充后的副本,原变量并未更改。...直接将含有异常值的记录删除 视为缺失值 利用缺失值的方法进行处理 平均值修正 可用前后两个观测值的平均值修正该异常值 不处理 伪异常数据直接在有异常值的数据集上进行挖掘建模 另一种解决方案: 用python
(1) Out[85]: a 1.0 b 1.0 c 1.0 d 1.0 dtype: float64 注 : cumsum() 与 cumprod() 等方法保留 NaN 值的位置...: float64 一般情况下,默认值包含中位数。...对于非数值型 Series 对象, describe() 返回值的总数、唯一值数量、出现次数最多的值及出现的次数。...,用该参数可以控制包含或排除的数据类型。...: int64 In [113]: df1.idxmax(axis=1) Out[113]: 0 C 1 A 2 C 3 A 4 C dtype: object 多行或多列中存在多个最大值或最小值时
对于异构数据(例如 DataFrame 的某些列不全是相同的 dtype),情况则不同。与轴标签不同,值属性本身不能被赋值。...对于广播行为,Series 输入是主要关注点。...-0.385845 dtype: float64 在这里,f 标签未包含在 Series 中,因此在结果中显示为NaN。...但是,如果errors='coerce',这些错误将被忽略,pandas 将把有问题的元素转换为pd.NaT(对于日期时间和时间间隔)或np.nan(对于数值)。...对于广播行为,Series 输入是主要关注点。
In [349]: dft["A"].dtype Out[349]: dtype('float64') 如果 pandas 对象包含具有多种数据类型在单个列中的数据,则将选择列的数据类型以容纳所有数据类型...C uint8 dtype: object 默认值 默认情况下,整数类型为int64,浮点类型为float64,不受平台(32 位或 64 位)的影响。...但是,如果errors='coerce',这些错误将被忽略,pandas 将把有问题的元素转换为pd.NaT(对于日期时间和时间增量)或np.nan(对于数值)。...float64 dtype: object 默认值 默认情况下,整数类型为int64,浮点数类型为float64,不受平台(32 位或 64 位)影响。...但是,如果errors='coerce',这些错误将被忽略,pandas 将把有问题的元素转换为pd.NaT(对于日期时间和时间间隔)或np.nan(对于数值)。
在整本书中,我们将缺失数据称为空值或NaN值。 缺失数据惯例中的权衡 许多方案已经开发出来,来指示表格或DataFrame中是否存在缺失数据。..., 2, None]) ''' 0 1.0 1 NaN 2 2.0 3 NaN dtype: float64 ''' 对于没有可用标记值的类型,当存在 NA 值时,Pandas...转换为float64 np.nan boolean 转换为object None或np.nan 请记住,在 Pandas 中,字符串数据始终与object dtype一起存储。...这可以通过how或thresh参数来指定,这些参数能够精确控制允许通过的空值数量。 默认值是how ='any',这样任何包含空值的行或列(取决于axis关键字)都将被删除。...data.fillna(method='bfill') ''' a 1.0 b 2.0 c 2.0 d 3.0 e 3.0 dtype: float64 ''' 对于DataFrame
在这种情况下,将使用默认填充值(对于 NumPy dtypes,通常是该 dtype 的“缺失”值)。...np.nan 作为 NumPy 类型的 NA 表示 由于在 NumPy 和 Python 中普遍缺乏对 NA(缺失)的支持,NA 可以用以下方式表示: 一种 掩码数组 解决方案:一个数据数组和一个布尔值数组...使用特殊的哨兵值、位模式或一组哨兵值来表示各种 dtypes 中的 NA。...使用特殊的哨兵值、位模式或一组哨兵值来表示跨 dtypes 的 NA。...使用特殊的标记值、位模式或一组标记值来表示跨数据类型的 NA。
Pandas 包含一些有用的调整,但是:对于一元操作,如取负和三角函数,这些ufunc将保留输出中的索引和列标签,对于二元操作,如加法和乘法,将对象传递给ufunc时,Pandas 将自动对齐索引。...这意味着,保留数据的上下文并组合来自不同来源的数据 - 这两个在原始的 NumPy 数组中可能容易出错的任务 - 对于 Pandas 来说基本上是万无一失的。...3 54.598150 dtype: float64 ''' 或者,对于稍微复杂的计算: np.sin(df * np.pi / 4) A B C D 0 -1.000000 7.071068e...California 90.413926 New York NaN Texas 38.018740 dtype: float64 ''' 所得数组包含两个输入数组的索引的并集...对于 Python 的任何内置算术表达式,索引匹配是以这种方式实现的;默认情况下,任何缺失值都使用NaN填充: A = pd.Series([2, 4, 6], index=[0, 1, 2]) B =
以float64为例,在math.SmallestNonzeroFloat64(float64的最小值)到math.MaxFloat64(float64的最大值)区间内有无穷尽个实数值。...但是float64是用64个bit位表示的,将无穷尽的实数一一映射到有限的64个bit上是无法实现的。必须采用近似值的方法,丢失一些精度信息。同理对于float32类型,也是这样。...通过比较差值是否在一定的范围内可能是跨不同机器实现有效测试的解决方案。 Go语言中还有三种特殊的浮点数:正无穷大、负无穷大、NaN(Not-a-Number)。..., nan) +Inf -Inf NaN 我们可以使用math库中的math.IsInf检查浮点数是否为无穷大,以及使用math.IsNaN检查浮点数是否为NaN....Go语言中float32和float64在计算机中是一种近似值表示,因此,我们必须牢记下面的规则: 当比较两个浮点数时,检查它们的差值是否在可接受的范围内,而不是直接 == 进行比较 当执行加法或减法时
NaN d -0.385845 dtype: float64 本例中,原 Series 里没有标签 f ,因此,输出结果里 f 对应的值为 NaN。...: float64 如果调用的是函数,该函数在处理标签时,必须返回一个值,而且生成的必须是一组唯一值。...不会重命名标签未包含在映射里的列或索引。...1.5 Name: 0, dtype: float64 row 里的值以 Series 形式返回,并被转换为浮点数,原始的整数值则在列 X: In [256]: row['int'].dtype...itertuples(),这个函数返回值的命名元组,总的来说,该操作比 iterrows() 速度更快。
以上述代码为例,count函数用于计算每个窗口内非NaN值的个数,对于第一个元素1,再往前就是下标-1了,序列中不存在这个元素,所以该窗口内的有效数值就是1。...对于一个窗口内的全部元素,除了计数外,还提供了以下多种功能 # 求和 >>> s.rolling(window=2).sum() 0 NaN 1 3.0 2 5.0 3 NaN 4 NaN dtype:...dtype: float64 # 最小值 >>> s.rolling(window=2).min() 0 NaN 1 1.0 2 2.0 3 NaN 4 NaN dtype: float64 # 最大值...>>> s.rolling(window=2).max() 0 NaN 1 2.0 2 3.0 3 NaN 4 NaN dtype: float64 除了单一功能的内置函数外,还提供了以下两种方式,agg...对于第二个元素而言,窗口内包含1和2两个元素;对于第三个元素而言,窗口内包含了1,2,3共3个元素,依次类推,就可以得到上述结果。 从上述逻辑可以发现,expanding实现了一种累积的计算方式。
其他轴是* a * 减少后保留的轴。如果输入包含小于float64的整数或浮点数,则输出数据类型是float64。否则,输出数据类型与输入的相同。如果指定了out,则返回该数组。...如果输入包含小于float64的整数或浮点数,则输出数据类型为float64。否则,输出数据类型与输入的相同。如果指定了out,则返回该数组。...如果输入包含小于float64的整数或浮点数,则输出数据类型为float64。否则,输出数据类型与输入相同。如果指定了out,则返回该数组。...对于整数输入,默认值为float64;对于浮点输入,它与输入 dtype 相同。 outndarray, 可选 备选输出数组,用于放置结果。...对于整数输入,默认值为float64;对于非精确输入,与输入 dtype 相同。 outndarray,可选 交替的输出数组,其中放置结果。
运行结果: 0 -0.062413 1 0.844813 2 0.368822 3 0.530325 dtype: float64 注意指定轴的方向,默认axis=0,方向是列...丢弃缺失数据:dropna() 根据axis轴方向,丢弃包含NaN的行或列。...Index时,输入了由两个子list组成的list,第一个子list是外层索引,第二个list是内层索引。...0.015426 c -0.452313 d -0.051063 dtype: float64 常用于分组操作、透视表的生成等 交换分层顺序 1. swaplevel() .swaplevel...-2.007771 2 -1.130825 3 -0.758540 4 -0.007470 dtype: float64 常用的统计描述 describe 产生多个统计数据 示例代码:
"所对应的sdata值找不到,所以其结果就为NaN(即“非数字”(not a number),在pandas中,它用于表示缺失或NA值)。...a -5.3 b 7.2 c 3.6 d 4.5 e NaN dtype: float64 对于时间序列这样的有序数据,重新索引时可能需要做一些插值处理。...obj < 2] Out[124]: a 0.0 b 1.0 dtype: float64 利用标签的切片运算与普通的Python切片运算不同,其末端是包含的: In [125]: obj...5 In [127]: obj Out[127]: a 0.0 b 5.0 c 5.0 d 3.0 dtype: float64 用一个值或序列对DataFrame进行索引其实就是获取一个或多个列...我们有包含0,1,2的索引,但是引入用户想要的东西(基于标签或位置的索引)很难: In [144]: ser Out[144]: 0 0.0 1 1.0 2 2.0 dtype: float64
是表格数据结构,包含列的有序集合。...的索引值。...b 1 c 2 dtype: int64 ''' 从带标签的Series中选择切片(注意包含终点): ser_2['a':'b'] ''' a 1 b 1 dtype: int64...='max') ''' 1 8 5 7 4 6 3 5 6 5 0 3 2 3 7 3 dtype: float64 ''' DataFrame可以按行或列排名...除非整行或列为 NA,否则将排除 NaN 值。
领取专属 10元无门槛券
手把手带您无忧上云