É fácil transformar uma lista de listas em um dataframe do pandas:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
Mas como faço para transformar df de volta em uma lista de listas?
lol = df.what_to_do_now?
print lol
# [[1,2,3],[3,4,5]]
L
s anexados na saída?df.to_numpy().tolist()
.Se os dados tiverem rótulos de coluna e índice que você deseja preservar, existem algumas opções.
Dados de exemplo:
O
tolist()
método descrito em outras respostas é útil, mas produz apenas os dados principais - o que pode não ser suficiente, dependendo de suas necessidades.Uma abordagem é converter o
DataFrame
para json usandodf.to_json()
e, em seguida, analisá-lo novamente. Isso é complicado, mas tem algumas vantagens, porque oto_json()
método tem algumas opções úteis.Pesado, mas pode ser útil.
A boa notícia é que é muito simples construir listas para as colunas e linhas:
Isso produz:
Se o
None
como o nome do índice for incômodo, renomeie-o:Então:
fonte
DataFrame.itertuples()
ouDataFrame.to_records()
para tudo isso?Não sei se atenderá às suas necessidades, mas você também pode fazer:
Este é apenas um array numpy do módulo ndarray, que permite que você faça todas as coisas normais do array numpy.
fonte
Eu queria preservar o índice, então adaptei a resposta original para esta solução:
Agora você pode colá-lo em outro lugar (por exemplo, para colar em uma pergunta do Stack Overflow) e depois recriá-lo:
fonte
Talvez algo tenha mudado, mas isso me deu uma lista de ndarrays que fazia o que eu precisava.
fonte
Observação: eu vi muitos casos no Stack Overflow em que a conversão de uma série Pandas ou DataFrame em uma matriz NumPy ou listas Python simples é totalmente desnecessária. Se você é novo na biblioteca, considere verificar se a funcionalidade de que você precisa já é oferecida por esses objetos Pandas.
Para citar um comentário de @jpp:
Se um DataFrame / Series do Pandas não funcionar, você pode usar os métodos
DataFrame.to_numpy
e integradosSeries.to_numpy
.fonte
for elem in some_series.values.tolist():
porque eles não sabem que você pode iterar sobre os elementos de uma série. Não tenho certeza do que há de tão terrível nessa resposta.Isso é muito simples:
fonte
DataFrame.values
ouDataFrame.to_numpy()
? Não importa o fato de que ele cria um array NumPy, não uma lista Python simples.Podemos usar a função DataFrame.iterrows () para iterar sobre cada uma das linhas do Dataframe fornecido e construir uma lista com os dados de cada linha:
Podemos extrair com sucesso cada linha do quadro de dados fornecido em uma lista
fonte