Es fácil convertir una lista de listas en un marco de datos de pandas:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
Pero, ¿cómo convierto df de nuevo en una lista de listas?
lol = df.what_to_do_now?
print lol
# [[1,2,3],[3,4,5]]
Puede acceder a la matriz subyacente y llamar a su tolist
método:
>>> df = pd.DataFrame([[1,2,3],[3,4,5]])
>>> lol = df.values.tolist()
>>> lol
[[1L, 2L, 3L], [3L, 4L, 5L]]
L
añaden s en la salida?df.to_numpy().tolist()
.Si los datos tienen etiquetas de índice y columna que desea conservar, existen algunas opciones.
Datos de ejemplo:
El
tolist()
método descrito en otras respuestas es útil, pero solo proporciona los datos básicos, que pueden no ser suficientes, según sus necesidades.Un enfoque es convertir el
DataFrame
a json usandodf.to_json()
y luego analizarlo nuevamente. Esto es engorroso pero tiene algunas ventajas, porque elto_json()
método tiene algunas opciones útiles.Es engorroso pero puede resultar útil.
La buena noticia es que es bastante sencillo crear listas para las columnas y filas:
Esto produce:
Si el
None
nombre del índice es molesto, cámbiele el nombre:Luego:
fuente
DataFrame.itertuples()
oDataFrame.to_records()
para todo esto?No sé si se ajustará a sus necesidades, pero también puede hacer:
Esta es solo una matriz numpy del módulo ndarray, que le permite hacer todas las cosas habituales de la matriz numpy.
fuente
Quería conservar el índice, así que adapté la respuesta original a esta solución:
Ahora puede pegarlo en otro lugar (por ejemplo, para pegarlo en una pregunta de Stack Overflow) y luego volver a crearlo:
fuente
Quizás algo cambió, pero esto devolvió una lista de ndarrays que hicieron lo que necesitaba.
fuente
Nota: He visto muchos casos en Stack Overflow en los que convertir una serie Pandas o DataFrame en una matriz NumPy o listas simples de Python es completamente innecesario. Si es nuevo en la biblioteca, considere la posibilidad de verificar dos veces si esos objetos Pandas ya ofrecen la funcionalidad que necesita.
Para citar un comentario de @jpp:
Si un DataFrame / Series de Pandas no funciona, puede usar los métodos
DataFrame.to_numpy
y incorporadosSeries.to_numpy
.fuente
for elem in some_series.values.tolist():
porque no saben que puedes iterar sobre los elementos de una serie. No estoy seguro de qué tiene de horrible esta respuesta.Esto es muy simple:
fuente
DataFrame.values
oDataFrame.to_numpy()
? No importa el hecho de que crea una matriz NumPy, no una lista simple de Python.Podemos usar la función DataFrame.iterrows () para iterar sobre cada una de las filas del Dataframe dado y construir una lista a partir de los datos de cada fila:
Podemos extraer con éxito cada fila del marco de datos dado en una lista
fuente