specific - python pandas delete nan
Índice de valores no “NaN” en Pandas (2)
Desde el marco de datos de Pandas, ¿cómo obtener el índice de valores que no son "NaN"?
Mi marco de datos es
A b c
0 1 q1 1
1 2 NaN 3
2 3 q2 3
3 4 q1 NaN
4 5 q2 7
Y quiero que el índice de las filas en las que la columna b no sea NaN. (Puede haber valores de NaN en otra columna, por ejemplo, c)
non_nana_index = [0,2,3,4]
Usando esta lista de índice que no es "NaN" quiero crear un nuevo marco de datos cuya columna b no tenga "Nan"
df2 =
A b c
0 1 q1 1
1 3 q2 3
2 4 q1 NaN
3 5 q2 7
Los DataFrames tienen un método 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''])
Solo filtrarlos
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