Tengo un marco de datos que consta de cientos de columnas y necesito ver todos los nombres de las columnas.
Lo que hice:
In[37]: data_all2.columnsLa salida es:
Out[37]: Index(['customer_id', 'incoming', 'outgoing', 'awan', 'bank', 'family', 'food', 'government', 'internet', 'isipulsa', ... 'overdue_3months_feature78', 'overdue_3months_feature79', 'overdue_3months_feature80', 'overdue_3months_feature81', 'overdue_3months_feature82', 'overdue_3months_feature83', 'overdue_3months_feature84', 'overdue_3months_feature85', 'overdue_3months_feature86', 'loan_overdue_3months_total_y'], dtype='object', length=102)¿Cómo muestro todas las columnas, en lugar de una lista truncada?
Puede que esté fuera de lugar, pero llegué a este hilo con el mismo tipo de problema que encontré. Esta es la respuesta simple si desea ver todo en una lista larga y el índice.
Esto es lo que uso en Spyder:
print(df.info())o esto es lo que se necesita en Jupyter:
df.info()Puedes hacer esto
df.info(show_counts=True) Mostrará todas las columnas. Establecer show_counts en True muestra el recuento de datos not_null .
Lo que funcionó para mí fue lo siguiente:
pd.options.display.max_seq_items = NoneTambién puede establecerlo en un número entero mayor que su número de columnas.
Tenía muchos nombres de columna duplicados, y una vez que ejecuté
df = df.loc[:,~df.columns.duplicated()]Pude ver la lista completa de columnas.
En la consola interactiva, es fácil de hacer:
data_all2.columns.tolist()O esto dentro de un script:
print(data_all2.columns.tolist())Si solo desea ver todas las columnas, puede hacer algo de este tipo como una solución rápida
cols = data_all2.columnsahora cols se comportará como una variable iterativa que se puede indexar. por ejemplo
cols[11:20]Una solución rápida y sucia sería convertirlo en una cadena
print('\t'.join(data_all2.columns))haría que todos se imprimieran separados por tabulaciones. Por supuesto, tenga en cuenta que con 102 nombres, todos bastante largos, será un poco difícil de leer.
Para obtener el nombre de todas las columnas, puede iterar sobre data_all2.columns .
columns = data_all2.columns for col in columns: print colObtendrá todos los nombres de las columnas. O puede almacenar todos los nombres de columna en otra variable de lista y luego imprimir la lista.
Puede configurar globalmente las opciones de impresión. Creo que esto debería funcionar:
Método 1:
pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None)Método 2:
pd.options.display.max_columns = None pd.options.display.max_rows = None Esto le permitirá ver todos los nombres de columna y filas cuando esté haciendo .head() . Ninguno de los nombres de las columnas se truncará.
Si solo desea ver los nombres de las columnas, puede hacerlo:
print(df.columns.tolist())Esto hará el truco. Tenga en cuenta el uso de display() en lugar de imprimir.
with pd.option_context('display.max_rows', 5, 'display.max_columns', None): display(my_df)EDITAR:
Se requiere el uso de display porque la configuración de pd.option_context solo se aplica a la display y no a print .
Para obtener todos los nombres de columna de un DataFrame, df_data en este ejemplo, solo necesita usar el comando df_data.columns.values . Esto le mostrará una lista con todos los nombres de columna de su marco de datos
Código:
df_data=pd.read_csv('../input/data.csv') print(df_data.columns.values)Producción:
['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch' 'Ticket' 'Fare' 'Cabin' 'Embarked']Sé que es una repetición pero siempre termino copiando pegando y modificando la respuesta de YOLO:
pd.set_option('display.max_columns', 500) pd.set_option('display.max_rows', 500)puedes probar esto
pd.pandas.set_option('display.max_columns', None)No es una respuesta convencional, pero supongo que podría transponer el marco de datos para mirar las filas en lugar de las columnas. Uso esto porque encuentro que mirar las filas es más 'intuitivo' que mirar las columnas:
data_all2.TEsto debería permitirle ver todas las filas. Esta acción no es permanente , solo le permite ver la versión transpuesta del marco de datos.
Si las filas aún están truncadas, simplemente use print(data_all2.T) para ver todo.
La forma más fácil que he encontrado es simplemente
list(df.columns)Personalmente, no me gustaría cambiar los globales, no es tan frecuente que quiera ver todos los nombres de las columnas.
La respuesta aceptada hizo que los nombres de mis columnas se envolvieran. Para mostrar todos los nombres de las columnas sin envolver, configure display.max_columns y display.width :
pandas.set_option('display.max_columns', None) pandas.set_option('display.width', 1000)