Soy nuevo en Python y me pregunto si había una manera de usar un bucle para generar un conjunto de listas, por nombre de columna, desde un pandas.dataframe. Los pd.dataframe (s) se generaron al importar archivos .xlsx usando pd.read.excel, y ahora estoy tratando de evitar pasar horas escribiendo lo que creo que puede ser código redundante.

Para dar un ejemplo:

import pandas as pd
a=[1,2,3,4]
b=[5,6,7,8]
c=["a","b","c","d"]
df=pd.DataFrame({'b':b,'c':c}, index=a)

Alguna idea sobre cómo haría para configurar y ejecutar un bucle para obtener los siguientes resultados:

Columna b dentro de df a una variable de lista individual llamada b y lo mismo para c

En lugar de codificarlo manualmente usando .tolist ()?

¡Gracias de antemano!

2
Chris_epi1 17 oct. 2018 a las 06:26

2 respuestas

La mejor respuesta

Puede recorrer sus columnas y almacenarlas en un dict y luego acceder a ellas por nombre de columna.

empty_dict = {}

for col in df.columns:
    empty_dict[col] = list(df[col])

empty_dict['b']

Supongo que desea extraer una lista de valores de la columna del marco de datos por nombre.

1
BernardL 17 oct. 2018 a las 03:44

{{ X0}} convierte un marco de datos en un diccionario. Hay diferentes tipos de salida, pero para crear listas para cada columna use el tipo list.

>>> df.to_dict('list') 
{'b': [5, 6, 7, 8], 'c': ['a', 'b', 'c', 'd']}
1
Alexander 17 oct. 2018 a las 04:29