# pip install missingno
#pip install missingno --upgrade
14 Valores nulos en datos y DataFrames
Los valores nulos representan un desafío significativo en la gestión de DataFrames y el análisis de datos. En esta sesión, abordaremos su relevancia y las técnicas efectivas para manejarlos, asegurando así la precisión y fiabilidad de nuestros análisis.
El primer paso es la limpieza de datos, un proceso vital que implica la identificación y eliminación de valores nulos, lo que resulta en una mejora sustancial de la calidad de tus conjuntos de datos. Un tratamiento adecuado de los mismos es esencial para garantizar resultados fiables y prevenir errores en tu análisis.
Los valores nulos no siempre deben ser vistos como simples huecos en tus datos; pueden revelar información crucial sobre tu conjunto de datos. Aprender a interpretar y utilizar esta información puede proporcionar una perspectiva más enriquecedora y completa en tu análisis.
import pandas as pd
import missingno as msno
= "../data/Cuernavaca_1dia_comas_Nans.csv"
f = pd.read_csv(f,index_col=0,parse_dates=True)
cuerna cuerna.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 24 entries, 2012-01-01 00:00:00 to 2012-01-01 23:00:00
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 To 13 non-null float64
1 Ws 24 non-null float64
2 Wd 24 non-null int64
3 P 24 non-null int64
4 Ig 24 non-null int64
5 Ib 24 non-null int64
6 Id 24 non-null int64
7 observacion 24 non-null object
dtypes: float64(2), int64(5), object(1)
memory usage: 1.7+ KB
= "../data/Cuernavaca_1dia_comas_NULOS.csv"
f = pd.read_csv(f)
cuerna cuerna.To.mean()
TypeError: Could not convert Nulo18.617.9Nulo16.615.917.018.019.020.020.0NuloNulo22.0NuloNuloNuloNuloNulo17.0Nulo17.016.6Nulo to numeric
= "../data/Cuernavaca_1dia_comas_NULOS.csv"
f = pd.read_csv(f,na_values="Nulo")
cuerna cuerna
tiempo | To | Ws | Wd | P | Ig | Ib | Id | observacion | |
---|---|---|---|---|---|---|---|---|---|
0 | 2012-01-01 00:00:00 | NaN | 0.0 | 26 | 87415 | 0 | 0 | 0 | Sí |
1 | 2012-01-01 01:00:00 | 18.6 | 0.0 | 26 | 87602 | 0 | 0 | 0 | No |
2 | 2012-01-01 02:00:00 | 17.9 | 0.0 | 30 | 87788 | 0 | 0 | 0 | No |
3 | 2012-01-01 03:00:00 | NaN | 0.0 | 30 | 87554 | 0 | 0 | 0 | No |
4 | 2012-01-01 04:00:00 | 16.6 | 0.0 | 27 | 87321 | 0 | 0 | 0 | No |
5 | 2012-01-01 05:00:00 | 15.9 | 0.0 | 26 | 87087 | 0 | 0 | 0 | Sí |
6 | 2012-01-01 06:00:00 | 17.0 | 0.0 | 27 | 87096 | 0 | 0 | 0 | No |
7 | 2012-01-01 07:00:00 | 18.0 | 0.0 | 34 | 87140 | 20 | 151 | 11 | Sí |
8 | 2012-01-01 08:00:00 | 19.0 | 0.0 | 61 | 87185 | 164 | 522 | 37 | No |
9 | 2012-01-01 09:00:00 | 20.0 | 0.0 | 95 | 87229 | 369 | 812 | 58 | Sí |
10 | 2012-01-01 10:00:00 | 20.0 | 1.0 | 108 | 87229 | 568 | 931 | 68 | No |
11 | 2012-01-01 11:00:00 | NaN | 2.1 | 160 | 87229 | 717 | 981 | 75 | No |
12 | 2012-01-01 12:00:00 | NaN | 1.8 | 135 | 87273 | 800 | 999 | 79 | Sí |
13 | 2012-01-01 13:00:00 | 22.0 | 1.5 | 160 | 87316 | 810 | 998 | 80 | No |
14 | 2012-01-01 14:00:00 | NaN | 1.3 | 164 | 87302 | 747 | 977 | 79 | No |
15 | 2012-01-01 15:00:00 | NaN | 1.2 | 176 | 87287 | 617 | 932 | 74 | Sí |
16 | 2012-01-01 16:00:00 | NaN | 1.0 | 140 | 87273 | 433 | 846 | 65 | Sí |
17 | 2012-01-01 17:00:00 | NaN | 0.0 | 198 | 87185 | 219 | 650 | 46 | No |
18 | 2012-01-01 18:00:00 | NaN | 0.0 | 221 | 87104 | 0 | 0 | 0 | Sí |
19 | 2012-01-01 19:00:00 | 17.0 | 0.0 | 269 | 87101 | 0 | 0 | 0 | No |
20 | 2012-01-01 20:00:00 | NaN | 0.0 | 50 | 87115 | 0 | 0 | 0 | No |
21 | 2012-01-01 21:00:00 | 17.0 | 0.2 | 85 | 87080 | 0 | 0 | 0 | No |
22 | 2012-01-01 22:00:00 | 16.6 | 0.5 | 89 | 87089 | 0 | 0 | 0 | No |
23 | 2012-01-01 23:00:00 | NaN | 0.8 | 93 | 87143 | 0 | 0 | 0 | No |
cuerna.To
0 NaN
1 18.6
2 17.9
3 NaN
4 16.6
5 15.9
6 17.0
7 18.0
8 19.0
9 20.0
10 20.0
11 NaN
12 NaN
13 22.0
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 17.0
20 NaN
21 17.0
22 16.6
23 NaN
Name: To, dtype: float64
msno.matrix(cuerna)
msno.bar(cuerna,)