Pandas: calculer la moyenne ou std (écart-type) sur toute la base de données

Voici mon problème, j'ai un dataframe comme ceci :

    Depr_1  Depr_2  Depr_3
S3  0   5   9
S2  4   11  8
S1  6   11  12
S5  0   4   11
S4  4   8   8

et je veux juste de calculer la moyenne sur l'ensemble de l'dataframe, que la suivante ne fonctionne pas :

df.mean()

Alors je suis venu avec :

df.mean().mean()

mais cette astuce ne fonctionnera pas pour calculer l'écart-type. Mes dernières tentatives ont été :

df.get_values().mean()
df.get_values().std()

sauf que dans ce dernier cas, il utilise la fonction moyenne() et std() à partir de numpy. Ce n'est pas un problème pour la moyenne, mais il est Pour std, comme la fonction pandas utilise par défaut ddof=1, à la différence de la numpy one où ddof=0.

17
demandé sur JohnE 2014-08-05 18:14:23

2 réponses

Vous pouvez convertir le dataframe à une seule colonne avec

df.stack().std()         # pandas default degrees of freedom is one

Alternativement, vous pouvez utiliser values pour passer d'une base de données pandas à un tableau numpy avant de prendre l'écart type:

df.values.std(ddof=1)    # numpy default degrees of freedom is zero

notez que (contrairement à pandas) num PY donnera l'écart-type de l'ensemble du tableau par défaut, donc il n'y a pas besoin de remodeler avant de prendre le standard écart.

28
répondu JohnE 2017-12-29 01:24:42
-3
répondu dartdog 2014-08-05 15:53:56