[英]index of non "NaN" values in Pandas
从 Pandas 数据框中,如何获取非“NaN”值的索引?
我的数据框是
A b c
0 1 q1 1
1 2 NaN 3
2 3 q2 3
3 4 q1 NaN
4 5 q2 7
我想要b列不是NaN的行的索引。 (其他列中可能有 NaN 值,例如 c )
non_nana_index = [0,2,3,4]
使用此非“NaN”索引列表,我想创建b列没有“Nan”的新数据框
df2=
A b c
0 1 q1 1
1 3 q2 3
2 4 q1 NaN
3 5 q2 7
只需过滤它们
In [62]:
df['b'].notnull()
Out[62]:
0 True
1 False
2 True
3 True
4 True
Name: b, dtype: bool
In [63]:
df[df['b'].notnull()]
Out[63]:
A b c
0 1 q1 1
2 3 q2 3
3 4 q1 NaN
4 5 q2 7
DataFrames有一个dropna
方法:
import pandas
import numpy
d = pandas.DataFrame({'A': [1, 2, 3, numpy.nan],
'b': [1, 2, numpy.nan, 3],
'c': [1, numpy.nan, 2, 3]})
d.dropna(subset=['b'])
您也可以在此处使用query
:
In [5]: df.query('b == b')
Out[5]:
A b c
0 1 q1 1.0
2 3 q2 3.0
3 4 q1 NaN
4 5 q2 7.0
这与 NaN 相比,它本身返回False :
In [5]: np.nan == np.nan
Out[5]: False
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.