Eu tenho um documento do Excel que se parece com isso ..
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
Desejo poder retornar o conteúdo da coluna 1 - cluster como uma lista, para que eu possa executar um loop for sobre ele e criar uma planilha do Excel para cada cluster.
Também é possível retornar o conteúdo de uma linha inteira para uma lista? por exemplo
list = [], list[column1] or list[df.ix(row1)]
.tolist()
para transformá-los em uma lista python.values
NÃO SERÁ MAIS o método preferido para acessar matrizes numpy subjacentes. Veja esta resposta .df.to_numpy().tolist()
deve ser bom para a maioria dos casos de uso.list(x)
Respostas:
As colunas do DataFrame do Pandas são da Série Pandas quando você as extrai, e você pode chamá
x.tolist()
-las para transformá-las em uma lista Python. Alternativamente, você o lançalist(x)
.Resultado:
fonte
Isso retorna uma matriz numpy:
Isso retorna uma matriz numpy de valores exclusivos :
Você também pode usar numpy para obter os valores exclusivos, embora haja diferenças entre os dois métodos:
fonte
Conversão de exemplo:
Matriz Numpy -> Quadro de Dados Panda -> Lista de uma Coluna Panda
Matriz Numpy
Converter array numpy em quadro de dados do Panda
Converter um Panda Frame em lista
pdToList = list(dataPd['2'])
fonte
df = pd.DataFrame(data=[[10, 20, 30], [20, 30, 60], [30, 60, 90]])
mais direto? Além disso, observe o nome e o espaço em branco da variável que seguem as convenções no estilo Python. Repita a lista como uma prova O que isso prova exatamente? Que é uma lista?Como essa pergunta recebeu muita atenção e existem várias maneiras de cumprir sua tarefa, deixe-me apresentar várias opções.
Esses são todos os one-liners, a propósito;)
Começando com:
Visão geral das operações em potencial:
código:
como indicado pelo cs95, outros métodos devem ser preferidos ao
.values
atributo pandas da versão 0.24 do pandas, veja aqui . Eu o uso aqui, porque a maioria das pessoas (em 2019) ainda terá uma versão mais antiga, que não suporta as novas recomendações. Você pode verificar sua versão comprint(pd.__version__)
fonte
Se sua coluna tiver apenas um valor, algo como
pd.series.tolist()
isso produzirá um erro. Para garantir que funcione para todos os casos, use o código abaixo:fonte
Supondo que o nome do quadro de dados após a leitura da planilha do excel seja
df
, pegue uma lista vazia (por exemplodataList
), itere através do quadro de dados linha por linha e acrescente à sua lista vazia como-Ou,
Não, se você imprimir
dataList
, receberá cada linha como uma lista nodataList
.fonte
lower_case_with_underscores
estilo. Que vantagem essa solução tem sobre as existentes, exatamente? Além disso, eu realmente desencorajo o uso de acesso no estilo de atributo no Series e DataFrames.fonte