Posterior a de esta extensa búsqueda de información dimos con la respuesta esta contrariedad que pueden tener ciertos los lectores. Te dejamos la solución y nuestro deseo es servirte de gran ayuda.
Solución:
No es exactamente lo que se preguntó en la pregunta, pero si quería evitar NaN
valores, calcule el desviación estándar de poblaciónespecificado con std(ddof=0)
:
>>> print(df.groupby('Category').std(ddof=0))
A B C D E F
Category
A 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
B 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
C 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
D 0.248192 0.195198 0.275101 0.194955 0.190215 0.052423
E 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
F 0.288417 0.127854 0.065012 0.110096 0.354885 0.191643
G 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
H 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Tenga en cuenta los diferentes valores predeterminados para ddof
(Grados de libertad delta):
- pandas:
DataFrame.std
tiene por defectoddof=1
por desviación estándar de la muestra (divisor: norte − 1) - NúmPy:
numpy.std
tiene por defectoddof=0
por desviación estándar de población (divisor: norte)
Tú podrías fillna
para reemplazar los valores que faltan – pasando en un DataFrame
con el último valor de cada grupo.
In [86]: (df.groupby('Category').std()
...: .fillna(df.groupby('Category').last()))
Out[86]:
A B C D E F
Category
A 0.500200 0.791039 0.498083 0.360320 0.965992 0.537068
B 0.714371 0.636975 0.153347 0.936872 0.000649 0.692558
C 0.295330 0.638823 0.133570 0.272600 0.647285 0.737942
D 0.350996 0.276052 0.389051 0.275708 0.269005 0.074137
E 0.639271 0.486151 0.860172 0.870838 0.831571 0.404813
F 0.407883 0.180813 0.091941 0.155699 0.501884 0.271024
G 0.384157 0.858391 0.278563 0.677627 0.998458 0.829019
H 0.109465 0.085861 0.440557 0.925500 0.767791 0.626924
Te mostramos reseñas y valoraciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)