Tengo un documento de Excel que se ve así ...
cluster load_date budget actual fixed_price
A 1/1/2014 1000 4000 Y
A 2/1/2014 12000 10000 Y
A 3/1/2014 36000 2000 Y
B 4/1/2014 15000 10000 N
B 4/1/2014 12000 11500 N
B 4/1/2014 90000 11000 N
C 7/1/2014 22000 18000 N
C 8/1/2014 30000 28960 N
C 9/1/2014 53000 51200 N
Quiero poder devolver el contenido de la columna 1: clúster como una lista, para poder ejecutar un bucle for sobre él y crear una hoja de cálculo de Excel para cada clúster.
¿También es posible devolver el contenido de una fila completa a una lista? p.ej
list = [], list[column1] or list[df.ix(row1)]
.tolist()
para convertirlas en una lista de Python.values
NO SERÁ el método preferido para acceder a las matrices numpy subyacentes. Mira esta respuesta .df.to_numpy().tolist()
debería estar bien para la mayoría de los casos de uso.list(x)
Respuestas:
Las columnas Pandas DataFrame son series Pandas cuando las extrae, a las que puede llamar
x.tolist()
para convertirlas en una lista de Python. Alternativamente lo lanzas conlist(x)
.Salida:
fuente
Esto devuelve una matriz numpy:
Esto devuelve una matriz numpy de valores únicos :
También puede usar numpy para obtener los valores únicos, aunque existen diferencias entre los dos métodos:
fuente
Conversión de ejemplo:
Numpy Array -> Panda Data Frame -> Lista de una columna Panda
Numpy Array
Convierta una matriz numpy en el marco de datos Panda
Convierte un Panda Frame a la lista
pdToList = list(dataPd['2'])
fuente
df = pd.DataFrame(data=[[10, 20, 30], [20, 30, 60], [30, 60, 90]])
más sencillo? Además, tenga en cuenta el nombre de la variable y el espacio en blanco que siguen las convenciones de estilo Python. Iterar sobre la lista como prueba ¿Qué prueba eso exactamente? ¿Que es una lista?Como esta pregunta atrajo mucha atención y hay varias formas de cumplir con su tarea, permítame presentarle varias opciones.
Esos son todos una línea por cierto;)
Empezando con:
Resumen de operaciones potenciales:
código:
como se señala en cs95 , se deben preferir otros métodos sobre el
.values
atributo pandas de la versión 0.24 de pandas en ver aquí . Lo uso aquí, porque la mayoría de las personas (para 2019) todavía tendrán una versión anterior, que no admite las nuevas recomendaciones. Puedes consultar tu versión conprint(pd.__version__)
fuente
Si su columna solo tendrá un valor, algo así
pd.series.tolist()
producirá un error. Para garantizar que funcionará en todos los casos, use el siguiente código:fuente
Suponiendo que el nombre del marco de datos después de leer la hoja de Excel es
df
, tome una lista vacía (por ejemplodataList
), repita el marco de datos fila por fila y agregue a su lista vacía como-O,
No, si imprime el
dataList
, obtendrá cada fila como una lista en eldataList
.fuente
lower_case_with_underscores
estilo. ¿Qué ventaja tiene esta solución sobre las existentes, exactamente? Además, realmente desaliento el uso del acceso de estilo de atributo en Series y DataFrames.fuente