在pandas
我们尝试投射包含以下内容的序列的序列时,NaN
如下所示
df.A = df.A.apply(int)
,我经常看到错误消息
ValueError: cannot convert float NaN to integer
我知道NaN
值不能转换为整数。但是我对ValueError
这种情况下的抛出感到好奇。它说 float NaN不能转换为整数。
为什么将NaN
值视为浮点对象有任何特定的原因?还是这种情况与显示的错误消息有关?
简短的答案是IEEE 754指定NaN
为一个float
值。
至于您应该如何将转换pd.Series
为特定的数值数据类型,我更喜欢pd.to_numeric
在可能的地方使用。以下示例说明了原因。
import pandas as pd
import numpy as np
s = pd.Series([1, 2.5, 3, 4, 5.5]) # s.dtype = float64
s = s.astype(float) # s.dtype = float64
s = pd.to_numeric(s, downcast='float') # s.dtype = float32
t = pd.Series([1, np.nan, 3, 4, 5]) # s.dtype = float64
t = t.astype(int) # ValueError
t = pd.to_numeric(t, downcast='integer') # s.dtype = float64
u = pd.Series([1, 2, 3, 4, 5, 6]) # s.dtype = int64
u = u.astype(int) # s.dtype = int32
u = pd.to_numeric(u, downcast='integer') # s.dtype = int8
问题内容: 为什么返回 Javascript? 在文档页面上,我看到以下内容: ## 针对NaN的测试 相等运算符(和)不能用于测试的值。使用代替。 有没有参考资料可以回答这个问题?不客气。 问题答案: 严格的回答 :因为JS规范是这样说的: 如果Type(x)是Number,则 如果x为NaN,则返回false。 如果y为NaN,则返回false。 有用的答案 :浮点数的IEEE 754规范(所
为什么无穷大比较不遵循应用于NANS的逻辑?此代码打印出三次: 但是,如果将更改为,则等于取,大于和小于比较取: 这看起来很危险。假设无穷大的值是由溢出产生的,我想更有可能的是,两个最终为无穷大的变量在完美算术中实际上并不相等。
我很熟悉在JavaScript中是“怪异的”,即总是返回,如本文所述。因此,不应进行比较来检查,而应使用isNaN(..)取而代之的是。 所以我惊讶地发现 这似乎不一致。为什么会有这种行为? 它是怎么工作的?方法是否专门检查?
问题内容: 当我创建我的(有史以来第一次)两列时,我的问题浮出水面。 我的左,右列都有一个包装器,但是包装器的高度没有扩大到适合左,右列的位置,每一个分别漂浮在其侧面。 我在网上找到了一个解决方案,在该解决方案中,它向包装器添加了样式“overflow:auto”(这是对吗?)。 但是,在我的研究中,没有什么能以一种我可以理解的方式解释为什么包装器的高度不能自动扩展以适应嵌套的divs和两列。 嵌
本文向大家介绍为什么会出现浮动?在什么时候需要清除浮动呢?相关面试题,主要包含被问及为什么会出现浮动?在什么时候需要清除浮动呢?时的应答技巧和注意事项,需要的朋友参考一下 @xiangshuo1992 是的,有相关联,第75天的题是问了它的工作原理,今天是问它为什么会出现浮动,还是有些区别。呵呵,我出题时,就猜到你会记得之前有出过了……果然
问题内容: 假设您有一个,给它一个定值,然后在其中添加元素,在我的情况下为另一个。 这个想法是容器的内容将导致容器伸展,并成为内容的背景。但是,当我这样做时,包含的对象会缩小以适合非漂浮的对象,并且漂浮的对象将要么全部伸出,要么一半伸出,一半进入,并且对big的大小没有任何影响。 为什么是这样?有什么我想念的东西,怎么才能让漂浮的物品伸出其中的东西呢? 问题答案: 最简单的方法是放在父div上,而