标签: nan

如何删除某些列中的值为NaN的Pandas DataFrame行

我有一个DataFrame:

>>> df
                 STK_ID  EPS  cash
STK_ID RPT_Date                   
601166 20111231  601166  NaN   NaN
600036 20111231  600036  NaN    12
600016 20111231  600016  4.3   NaN
601009 20111231  601009  NaN   NaN
601939 20111231  601939  2.5   NaN
000001 20111231  000001  NaN   NaN
Run Code Online (Sandbox Code Playgroud)

然后我只想要那些EPS不是NaN,df.drop(....)即将返回数据帧的记录,如下所示:

                  STK_ID  EPS  cash
STK_ID RPT_Date                   
600016 20111231  600016  4.3   NaN
601939 20111231  601939  2.5   NaN
Run Code Online (Sandbox Code Playgroud)

我怎么做?

python nan dataframe pandas

661
推荐指数
9
解决办法
81万
查看次数

如何检查Pandas DataFrame中的任何值是否为NaN

在Python Pandas中,检查DataFrame是否具有一个(或多个)NaN值的最佳方法是什么?

我知道函数pd.isnan,但是这会为每个元素返回一个布尔数据框架.这篇文章也没有完全回答我的问题.

python nan dataframe pandas

428
推荐指数
14
解决办法
69万
查看次数

你如何检查JavaScript中的数字是NaN?

我只是在Firefox的JavaScript控制台中尝试过,但以下两个语句都没有返回true:

parseFloat('geoff') == NaN;

parseFloat('geoff') == Number.NaN;
Run Code Online (Sandbox Code Playgroud)

javascript nan

399
推荐指数
16
解决办法
34万
查看次数

检查C++中的double(或float)是否为NaN

是否有isnan()函数?

PS.:我在MinGW(如果这有所不同).

我不得不用isnan()从此解决了<math.h>,这是不存在的<cmath>,这让我#include在第一荷兰国际集团.

c++ double nan

358
推荐指数
12
解决办法
35万
查看次数

如何将NaN从parseInt转换为0表示空字符串?

是否有可能以某种方式返回0而不是NaN在JavaScript中解析值时?

如果空字符串parseInt返回NaN.

是否可以在JavaScript中执行类似的操作来检查NaN

var value = parseInt(tbb) == NaN ? 0 : parseInt(tbb)
Run Code Online (Sandbox Code Playgroud)

或者可能有另一个函数或jQuery插件可能做类似的事情?

javascript nan

280
推荐指数
6
解决办法
22万
查看次数

你如何测试双重是否等于NaN?

我有一个Java的双倍,我想检查它是否是NaN.做这个的最好方式是什么?

java double equality nan

274
推荐指数
4
解决办法
17万
查看次数

对于IEEE754 NaN值,所有比较返回false的理由是什么?

为什么NaN值的比较与所有其他值的行为不同?也就是说,与运算符==,<=,> =,<,>的所有比较(其中一个或两个值为NaN)返回false,这与所有其他值的行为相反.

我想这可以通过某种方式简化数值计算,但我找不到明确说明的理由,甚至在Kahan 的IEEE 754状态讲义中也没有详细讨论其他设计决策.

这种异常行为在进行简单数据处理时会造成麻烦.例如,当在C程序中对某些实值字段的记录列表进行排序时,我需要编写额外的代码来处理NaN作为最大元素,否则排序算法可能会变得混乱.

编辑: 迄今为止的答案都认为比较NaNs毫无意义.

我同意,但这并不意味着正确的答案是错误的,而是一个非布尔值(NaB),幸运的是它不存在.

因此,在我看来,选择返回真或假的比较是任意的,对于一般数据处理,如果它遵循通常的定律(==的反射性,<= =,>的三分法),那将是有利的,以免数据结构依赖这些法律变得困惑.

因此,我要求打破这些法律的一些具体优势,而不仅仅是哲学推理.

编辑2: 我想我现在理解为什么使NaN最大化是一个坏主意,它会搞砸上限的计算.

可能需要NaN!= NaN以避免检测环路中的收敛,例如

while (x != oldX) {
    oldX = x;
    x = better_approximation(x);
}
Run Code Online (Sandbox Code Playgroud)

然而,最好通过比较绝对差异与小限制来编写.所以恕我直言,这是打破NaN反身性的一个相对弱的论据.

floating-point comparison nan ieee-754 iec10967

240
推荐指数
5
解决办法
4万
查看次数

Python Pandas如何在不显式列出列的情况下从DataFrame中选择包含一个或多个空值的行?

我有一个〜300K行和~40列的数据帧.我想知道是否有任何行包含空值 - 并将这些'null'行放入一个单独的数据帧中,以便我可以轻松地探索它们.

我可以明确地创建一个掩码:

mask = False
for col in df.columns: 
    mask = mask | df[col].isnull()
dfnulls = df[mask]
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做:

df.ix[df.index[(df.T == np.nan).sum() > 1]]
Run Code Online (Sandbox Code Playgroud)

是否有一种更优雅的方式(找到包含空值的行)?

python null nan pandas

198
推荐指数
4
解决办法
26万
查看次数

是否可以将数字设置为NaN或无穷大?

是否可以NaN在Python中设置数组元素?

另外,是否可以将变量设置为+/-无穷大?如果是,是否有任何功能来检查数字是否无穷大?

python numeric nan infinite

191
推荐指数
3
解决办法
27万
查看次数

从数组中删除nan值

我想弄清楚如何从我的数组中删除nan值.它看起来像这样:

x = [1400, 1500, 1600, nan, nan, nan ,1700] #Not in this exact configuration
Run Code Online (Sandbox Code Playgroud)

我对python比较陌生,所以我还在学习.有小费吗?

python arrays numpy nan

188
推荐指数
10
解决办法
31万
查看次数