tutorialspoint seleccionar how hacer example columnas python pandas

seleccionar - python y pandas



Pandas ''describe'' no está devolviendo resumen de todas las columnas (6)

Estoy ejecutando ''describe ()'' en un marco de datos y obteniendo resúmenes de solo columnas int (pandas 14.0).

La documentación dice que para las columnas de objetos la frecuencia es el valor más común y se devolverán estadísticas adicionales. ¿Qué podría estar mal? (Por cierto, no se devuelve ningún mensaje de error)

Editar:

Creo que es así como la función está configurada para comportarse en tipos de columnas mixtas en un marco de datos. Aunque la documentación no lo menciona.

Código de ejemplo:

df_test = pd.DataFrame({''$a'':[1,2], ''$b'': [10,20]}) df_test.dtypes df_test.describe() df_test[''$a''] = df_test[''$a''].astype(str) df_test.describe() df_test[''$a''].describe() df_test[''$b''].describe()

Mi feo trabajo alrededor mientras tanto:

def my_df_describe(df): objects = [] numerics = [] for c in df: if (df[c].dtype == object): objects.append(c) else: numerics.append(c) return df[numerics].describe(), df[objects].describe()


''describe ()'' en un DataFrame solo funciona para tipos numéricos. Si crees que tienes una variable numérica y no aparece en ''decribe ()'', cambia el tipo con:

df[[''col1'', ''col2'']] = df[[''col1'', ''col2'']].astype(float)

También puede crear nuevas columnas para manejar la parte numérica de una columna de tipo mixto, o convertir cadenas en números usando un diccionario y la función map ().

''describe ()'' en una serie no numérica le dará algunas estadísticas (como el valor de conteo, único y el que ocurre con mayor frecuencia).


A partir de pandas v15.0, use el parámetro DataFrame.describe(include = ''all'') para obtener un resumen de todas las columnas cuando el marco de datos tiene tipos de columnas mixtas . El comportamiento predeterminado es proporcionar solo un resumen para las columnas numéricas.

Ejemplo:

In[1]: df = pd.DataFrame({''$a'':[''a'', ''b'', ''c'', ''d'', ''a''], ''$b'': np.arange(5)}) df.describe(include = ''all'') Out[1]: $a $b count 5 5.000000 unique 4 NaN top a NaN freq 2 NaN mean NaN 2.000000 std NaN 1.581139 min NaN 0.000000 25% NaN 1.000000 50% NaN 2.000000 75% NaN 3.000000 max NaN 4.000000

Las columnas numéricas tendrán NaN para estadísticas de resumen pertenecientes a objetos (cadenas) y viceversa.

Resumiendo solo columnas numéricas o de objeto

  1. Para llamar a describe() solo en las columnas numéricas use describe(include = [np.number])
  2. Para llamar a describe() solo en los objetos (cadenas) usando describe(include = [''O'']) .

    In[2]: df.describe(include = [np.number]) Out[3]: $b count 5.000000 mean 2.000000 std 1.581139 min 0.000000 25% 1.000000 50% 2.000000 75% 3.000000 max 4.000000 In[3]: df.describe(include = [''O'']) Out[3]: $a count 5 unique 4 top a freq 2


Además de DataFrame.describe(include = ''all'') , también se puede usar Series.value_counts() para cada columna categórica:

In[1]: df = pd.DataFrame({''$a'':[''a'', ''b'', ''c'', ''d'', ''a''], ''$b'': np.arange(5)}) df[''$a''].value_counts() Out[1]: $a a 2 d 1 b 1 c 1


El método .describe () solo funciona en columnas que tienen tipos de datos numéricos. Puede comprobar los tipos de datos de columnas por

df.dtypes()

Para obtener el resumen de descripción de todas las columnas use,

df.describe(include=''all'')

Esto le dará una descripción de todas las columnas.


Puede ejecutar df_test.info() para obtener la lista de tipos de datos que contiene su marco de datos. Si su marco de datos contiene solo columnas numéricas, df_test.describe () funcionará perfectamente bien. Como por defecto, proporciona el resumen de los valores numéricos. Si desea el resumen de sus características de Objeto (Cadena), puede usar df_test.describe(include=[''O'']) .

O, en resumen, puede usar df_test.describe(include=''all'') para obtener un resumen de todas las columnas de características cuando su marco de datos tiene columnas de varios tipos de datos.


pd.options.display.max_columns = DATA.shape[1] funcionará.

Aquí DATA es una matriz 2d, y el código anterior mostrará las estadísticas verticalmente.