J'ai un dataframe de la forme suivante (par exemple)
shopper_num,is_martian,number_of_items,count_pineapples,birth_country,tranpsortation_method
1,FALSE,0,0,MX,
2,FALSE,1,0,MX,
3,FALSE,0,0,MX,
4,FALSE,22,0,MX,
5,FALSE,0,0,MX,
6,FALSE,0,0,MX,
7,FALSE,5,0,MX,
8,FALSE,0,0,MX,
9,FALSE,4,0,MX,
10,FALSE,2,0,MX,
11,FALSE,0,0,MX,
12,FALSE,13,0,MX,
13,FALSE,0,0,CA,
14,FALSE,0,0,US,
Comment utiliser Pandas pour calculer les statistiques récapitulatives de chaque colonne (les types de données de colonne sont variables, certaines colonnes ne contiennent aucune information)
Et retournez ensuite le dataframe du formulaire:
columnname, max, min, median,
is_martian, NA, NA, FALSE
Et ainsi de suite
describe
peut vous donner tout ce que vous voulez, sinon vous pouvez effectuer des agrégations en utilisant groupby et passer une liste de fonctions agg: http://pandas.pydata.org/pandas- docs/stable/groupby.html # application-plusieurs-fonctions-à-une fois
In [43]:
df.describe()
Out[43]:
shopper_num is_martian number_of_items count_pineapples
count 14.0000 14 14.000000 14
mean 7.5000 0 3.357143 0
std 4.1833 0 6.452276 0
min 1.0000 False 0.000000 0
25% 4.2500 0 0.000000 0
50% 7.5000 0 0.000000 0
75% 10.7500 0 3.500000 0
max 14.0000 False 22.000000 0
[8 rows x 4 columns]
Notez que certaines colonnes ne peuvent pas être résumées car il n’existe aucun moyen logique de les résumer, par exemple les colonnes contenant des données de chaîne.
Comme vous préférez, vous pouvez transposer le résultat si vous préférez:
In [47]:
df.describe().transpose()
Out[47]:
count mean std min 25% 50% 75% max
shopper_num 14 7.5 4.1833 1 4.25 7.5 10.75 14
is_martian 14 0 0 False 0 0 0 False
number_of_items 14 3.357143 6.452276 0 0 0 3.5 22
count_pineapples 14 0 0 0 0 0 0 0
[4 rows x 8 columns]
Maintenant, il y a le package pandas_profiling
, qui est une alternative plus complète à df.describe()
.
Si votre image pandas est df
, le texte ci-dessous renverra une analyse complète comprenant des avertissements concernant les valeurs manquantes, l'asymétrie, etc.). Il présente également des histogrammes et des diagrammes de corrélation.
import pandas_profiling
pandas_profiling.ProfileReport(df)
Voir le exemple cahier détaillant l'utilisation.
Pour clarifier un point de la réponse de @ EdChum, selon la documentation, vous pouvez inclure les colonnes d'objet à l'aide de df.describe(include='all')
. Il ne fournira pas beaucoup de statistiques, mais quelques informations, notamment le nombre, le nombre de valeurs uniques et la valeur maximale. Cela peut être une nouvelle fonctionnalité, je ne le sais pas car je suis un utilisateur relativement nouveau.