2012-08-09 22 views
10

Tengo un DataFrame con una combinación de 0 y otros números. Me gustaría convertir los 0 a faltantes.Convirtiendo datos a desaparecidos en pandas

Por ejemplo, estoy buscando para el comando que convertiría

In [618]: a=DataFrame(data=[[1,2],[0,1],[1,2],[0,0]]) 

In [619]: a 
Out[619]: 
    0 1 
0 1 2 
1 0 1 
2 1 2 
3 0 0 

a

In [619]: a 
Out[619]: 
    0 1 
0 1 2 
1 NaN 1 
2 1 2 
3 NaN NaN 

Probé pandas.replace (0, NaN), pero me da un error que es NaN no definida. Y no veo ningún lugar desde donde importar NaN.

Respuesta

10

Simplemente haz from numpy import nan. (Tendrá que convertir su DataTable en tipo flotante, porque no puede usar NaN en matrices de enteros.)

+2

no funciona, porque el tipo de columnas es int: 'ValueError: no se puede convertir flotante NaN entero ' – bmu

+2

Bueno, entonces tendrá que convertir los datos en flotadores. No puede usar 'NaN' con estructuras de datos enteros. Consulte http://stackoverflow.com/questions/11548005/numpy-or-pandas-keeping-array-type-as-integer-while-having-a-nan-value. – BrenBarn

+3

por lo que debe explicar esto en su respuesta, en el momento en que la respuesta no se ajusta a la pregunta. – bmu