首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在pandas数据帧中查找具有NaN的行的整数索引

在pandas数据帧中查找具有NaN的行的整数索引
EN

Stack Overflow用户
提问于 2012-12-24 09:53:50
回答 12查看 156.1K关注 0票数 109

我有一个像这样的熊猫DataFrame:

代码语言:javascript
复制
                    a         b
2011-01-01 00:00:00 1.883381  -0.416629
2011-01-01 01:00:00 0.149948  -1.782170
2011-01-01 02:00:00 -0.407604 0.314168
2011-01-01 03:00:00 1.452354  NaN
2011-01-01 04:00:00 -1.224869 -0.947457
2011-01-01 05:00:00 0.498326  0.070416
2011-01-01 06:00:00 0.401665  NaN
2011-01-01 07:00:00 -0.019766 0.533641
2011-01-01 08:00:00 -1.101303 -1.408561
2011-01-01 09:00:00 1.671795  -0.764629

有没有一种有效的方法来找到具有NaNs的行的“整型”索引?在这种情况下,期望的输出应该是[3, 6]

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-12-24 11:02:12

对于DataFrame df

代码语言:javascript
复制
import numpy as np
index = df['b'].index[df['b'].apply(np.isnan)]

将返回可用于索引回dfMultiIndex,例如:

代码语言:javascript
复制
df['a'].ix[index[0]]
>>> 1.452354

对于整数索引:

代码语言:javascript
复制
df_index = df.index.values.tolist()
[df_index.index(i) for i in index]
>>> [3, 6]
票数 53
EN

Stack Overflow用户

发布于 2012-12-26 02:41:24

这里有一个更简单的解决方案:

inds = pd.isnull(df).any(1).nonzero()[0]

代码语言:javascript
复制
In [9]: df
Out[9]: 
          0         1
0  0.450319  0.062595
1 -0.673058  0.156073
2 -0.871179 -0.118575
3  0.594188       NaN
4 -1.017903 -0.484744
5  0.860375  0.239265
6 -0.640070       NaN
7 -0.535802  1.632932
8  0.876523 -0.153634
9 -0.686914  0.131185

In [10]: pd.isnull(df).any(1).nonzero()[0]
Out[10]: array([3, 6])
票数 153
EN

Stack Overflow用户

发布于 2019-01-15 19:23:20

单行解决方案。但是,它只适用于一列。

代码语言:javascript
复制
df.loc[pandas.isna(df["b"]), :].index
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14016247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档