Digamos que tengo un DataFrame que se ve así:
df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]], columns=['Col 1', 'Col 2', 'Col 3']) >>> df Col 1 Col 2 Col 3 0 1 2 3 1 4 5 6 2 7 8 9¿Hay alguna forma de Pandas de devolver el DataFrame como una lista de listas con los encabezados incluidos?
Puedo devolver los encabezados y valores como listas de la siguiente manera
>>> df.columns.values.tolist() ['Col 1', 'Col 2', 'Col 3'] >>> df.values.tolist() [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> df.tolist()Pero, ¿cómo podría devolver el siguiente resultado?
[['Col 1', 'Col 2', 'Col 3'], [1, 2, 3], [4, 5, 6], [7, 8, 9]]Use doble transposición con reset_index :
print (df.T.reset_index().values.T.tolist()) [['Col 1', 'Col 2', 'Col 3'], [1, 2, 3], [4, 5, 6], [7, 8, 9]]O mejor inserción :
a = df.columns.values.tolist() b = df.values.tolist() b.insert(0, a) print (b) [['Col 1', 'Col 2', 'Col 3'], [1, 2, 3], [4, 5, 6], [7, 8, 9]]Tienes dos listas, así que usa:
[df.columns.values.tolist()] + df.values.tolist() >>> [['Col 1', 'Col 2', 'Col 3'], [1, 2, 3], [4, 5, 6], [7, 8, 9]]