python - type - statistics pandas
pandas describen por-parĂ¡metros adicionales (2)
Veo que la biblioteca de pandas tiene una función Describe by
, que arroja algunas estadísticas útiles. Sin embargo, ¿hay alguna forma de agregar filas adicionales al resultado, como la desviación estándar (.std) y la desviación media absoluta (.mad) o el recuento de valores únicos?
Obtengo df.describe()
pero no puedo averiguar cómo agregar estos elementos de resumen adicionales
Prueba esto:
df.describe()
num1 num2
count 3.0 3.0
mean 2.0 5.0
std 1.0 1.0
min 1.0 4.0
25% 1.5 4.5
50% 2.0 5.0
75% 2.5 5.5
max 3.0 6.0
Construye un segundo DataFrame.
pd.DataFrame(df.mad() , columns = ["Mad"] ).T
num1 num2
Mad 0.666667 0.666667
Únase a los dos DataFrames.
pd.concat([df.describe(),pd.DataFrame(df.mad() , columns = ["Mad"] ).T ])
num1 num2
count 3.000000 3.000000
mean 2.000000 5.000000
std 1.000000 1.000000
min 1.000000 4.000000
25% 1.500000 4.500000
50% 2.000000 5.000000
75% 2.500000 5.500000
max 3.000000 6.000000
Mad 0.666667 0.666667
1.
la describe
predeterminada se ve así:
np.random.seed([3,1415])
df = pd.DataFrame(np.random.rand(100, 5), columns=list(''ABCDE''))
df.describe()
A B C D E
count 100.000000 100.000000 100.000000 100.000000 100.000000
mean 0.495871 0.472939 0.455570 0.503899 0.451341
std 0.303589 0.291968 0.294984 0.269936 0.284666
min 0.006453 0.001559 0.001068 0.015311 0.009526
25% 0.239379 0.219141 0.196251 0.294371 0.202956
50% 0.529596 0.456548 0.376558 0.532002 0.432936
75% 0.759452 0.739666 0.665563 0.730702 0.686793
max 0.999799 0.994510 0.997271 0.981551 0.979221
Actualizado para pandas 0.20
Haría mi propia describe
como abajo. Debería ser obvio cómo agregar más.
def describe(df, stats):
d = df.describe()
return d.append(df.reindex_axis(d.columns, 1).agg(stats))
describe(df, [''skew'', ''mad'', ''kurt''])
A B C D E
count 100.000000 100.000000 100.000000 100.000000 100.000000
mean 0.495871 0.472939 0.455570 0.503899 0.451341
std 0.303589 0.291968 0.294984 0.269936 0.284666
min 0.006453 0.001559 0.001068 0.015311 0.009526
25% 0.239379 0.219141 0.196251 0.294371 0.202956
50% 0.529596 0.456548 0.376558 0.532002 0.432936
75% 0.759452 0.739666 0.665563 0.730702 0.686793
max 0.999799 0.994510 0.997271 0.981551 0.979221
skew -0.014942 0.048054 0.247244 -0.125151 0.066156
mad 0.267730 0.249968 0.254351 0.228558 0.242874
kurt -1.323469 -1.223123 -1.095713 -1.083420 -1.148642
Vieja respuesta
def describe(df):
return pd.concat([df.describe().T,
df.mad().rename(''mad''),
df.skew().rename(''skew''),
df.kurt().rename(''kurt''),
], axis=1).T
describe(df)
A B C D E
count 100.000000 100.000000 100.000000 100.000000 100.000000
mean 0.495871 0.472939 0.455570 0.503899 0.451341
std 0.303589 0.291968 0.294984 0.269936 0.284666
min 0.006453 0.001559 0.001068 0.015311 0.009526
25% 0.239379 0.219141 0.196251 0.294371 0.202956
50% 0.529596 0.456548 0.376558 0.532002 0.432936
75% 0.759452 0.739666 0.665563 0.730702 0.686793
max 0.999799 0.994510 0.997271 0.981551 0.979221
mad 0.267730 0.249968 0.254351 0.228558 0.242874
skew -0.014942 0.048054 0.247244 -0.125151 0.066156
kurt -1.323469 -1.223123 -1.095713 -1.083420 -1.148642