4
votes

Comment changer le format de la sortie .describe ()?

J'ai mis .describe () dans un Dataframe, la sortie n'a pas l'air bien. Je veux que la sortie affiche le nombre entier et ne soit pas simplifiée avec des exponentielles.

Entrée:

count    60.0
mean     7123.568
std      214448.3
min      100.0000
25%      2770.080
50%      15579.20
75%      43484.70
max      1592640.0
Name: A, dtype: float64

À quoi ressemble la sortie:

count    6.000000e+01
mean     7.123568e+04
std      2.144483e+05
min      1.000000e+02
25%      2.770080e+03
50%      1.557920e+04
75%      4.348470e+04
max      1.592640e+06
Name: A, dtype: float64

Résultat attendu:

df["A"].describe()


3 Réponses :


0
votes

vous pouvez utiliser

df["A"].describe(include=['category'])


0 commentaires

4
votes

essayez de définir le format float pour la sortie que vous obtenez en utilisant des pandas

import pandas as pd

pd.set_option('display.float_format', lambda x: '%.3f' % x)

0 commentaires

8
votes

Vous pouvez changer le float_format des pandas dans les pandas set_option

import pandas as pd
import numpy as np

data = pd.DataFrame()

data['X'] = np.random.rand(1000, ) + 10000000 * 0.587

data['X'].describe().apply("{0:.5f}".format)

#output

count       1000.00000
mean     5870000.48955
std            0.29247
min      5870000.00350
25%      5870000.22416
50%      5870000.50163
75%      5870000.73457
max      5870000.99995

Ou sans utiliser set_option use appliquer sur la série de sortie comme ceci

import pandas as pd
import numpy as np

pd.set_option('display.float_format', lambda x: '%.5f' % x)

data = pd.DataFrame()

data['X'] = (np.random.rand(1000, ) + 10000000) * 0.587

data['X'].describe()

# Output 
count      1000.00000
mean    5870000.47894
std           0.28447
min     5870000.00037
25%     5870000.23637
50%     5870000.45799
75%     5870000.71652
max     5870000.99774
Name: X, dtype: float64


2 commentaires

Salut merci beaucoup les deux méthodes fonctionnent! J'ai quelque chose à clarifier, pour utiliser set_option, cela signifie-t-il que si j'ai utilisé set_option, en appelant .describe () plusieurs fois, la sortie aura toujours 5 décimales?


si vous utilisez set_option et modifiez le float_format , les pandas afficheront float dans le float_format fourni tout au long du code