Eu trabalho muito com Series e DataFrames no terminal. O padrão __repr__
para uma série retorna uma amostra reduzida, com alguns valores de cabeça e cauda, mas o restante está ausente.
Existe uma maneira embutida de imprimir bonito todo o Series / DataFrame? Idealmente, ele suportaria o alinhamento adequado, talvez bordas entre colunas e talvez até código de cores para as diferentes colunas.
pd.set_option('display.max_rows', 1000)
por exemplo, a coloração é outra coisa, suponho que você esteja falando sobre colorir a saída html repr. Eu não acho que isso esteja embutido.display.max_rows
, o problema é que na maioria das vezes eu quero que a saída seja truncada. É apenas ocasionalmente que desejo ver a saída completa. Eu poderia definir a opção com um valor muito alto, usar o padrão e__repr__
, em seguida, reverter o valor, mas isso parece um pouco complicado, e eu também poderia escrever minha própria função de impressão bonita nesse caso.set_option
que suporte a coloração, talvez algo que possa ser feito como um plug-in para aplicar alguma formatação de saída ou css. Esta é a única maneira que eu acho que você poderia conseguir issoRespostas:
Você também pode usar o
option_context
, com uma ou mais opções:Isso retornará automaticamente as opções aos seus valores anteriores.
Se você estiver trabalhando no notebook jupyter, usar em
display(df)
vez deprint(df)
usará a lógica de exibição rica do jupyter (assim) .fonte
None
desativá-los. Usando oswith pd.option_context()
documentos de opções o que está acontecendo de forma muito clara e explicitamente, e deixa claro como alcançar outras mudanças na produção de formatação que pode ser desejada, usando, por exemploprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, e muitos muitos mais: pandas.pydata.org/pandas -docs / estável / options.htmldisplay(df)
vez deprint(df)
Não há necessidade de hackear configurações. Existe uma maneira simples:
fonte
with pd.option_context()
documentos de opção que está acontecendo muito mais clara e explicitamente, e deixa claro como alcançar outras mudanças na produção de formatação que pode ser desejada, usando, por exemploprecision
,max_colwidth
,expand_frame_repr
,colheader_justify
,date_yearfirst
,encoding
, e muitos muitos mais: pandas.pydata.org/ pandas-docs / stable / options.htmlpd.set_option('display.max_rows', None)
logo antes da impressãodf
.Claro, se isso acontecer muito, faça uma função como esta. Você pode até configurá-lo para carregar sempre que iniciar o IPython: https://ipython.org/ipython-doc/1/config/overview.html
Quanto à coloração, ficar muito elaborado com cores parece contraproducente para mim, mas eu concordo que algo como o bootstrap
.table-striped
seria bom. Você sempre pode criar um problema para sugerir esse recurso.fonte
Depois de importar os pandas, como alternativa ao uso do gerenciador de contexto, defina essas opções para exibir quadros de dados inteiros:
Para uma lista completa de opções úteis, consulte:
fonte
-1
o valor int em vez deNone
, se você quiser plena representaçãodisplay.
o nome da opção não parece ser necessário. Por exemplo,set_option('max_columns')
funciona igualmente bem.Use o pacote tabulado:
E considere o seguinte exemplo de uso:
fonte
pd_series.to_frame()
Se você estiver usando o Ipython Notebook (Jupyter). Você pode usar HTML
fonte
Usando
pd.options.display
Esta resposta é uma variação da resposta anterior de lucidyan . Torna o código mais legível, evitando o uso de
set_option
.Depois de importar os pandas, como alternativa ao uso do gerenciador de contexto, defina essas opções para exibir grandes quadros de dados:
Depois disso, você pode usar um
display(df)
ou apenasdf
se estiver usando um notebook, caso contrárioprint(df)
.Usando
to_string
O Pandas 0.25.3 possui
DataFrame.to_string
eSeries.to_string
métodos que aceitam opções de formatação.Usando
to_markdown
Se o que você precisa é uma saída de remarcação, o Pandas 1.0.0 possui
DataFrame.to_markdown
eSeries.to_markdown
métodos.Usando
to_html
Se o que você precisa é de saída HTML, o Pandas 0.25.3 possui um
DataFrame.to_html
método, mas não umSeries.to_html
. Observe que aSeries
pode ser convertido em aDataFrame
.fonte
Tente isto
fonte
Você pode conseguir isso usando o método abaixo. basta passar o total não. de colunas presentes no DataFrame como arg para
Por exemplo:
fonte
Tente usar a função display (). Isso usaria automaticamente barras de rolagem horizontais e verticais e, com isso, você poderá exibir diferentes conjuntos de dados facilmente, em vez de usar print ().
O display () também suporta o alinhamento adequado.
No entanto, se você quiser tornar o conjunto de dados mais bonito, pode verificar
pd.option_context()
. Tem muitas opções para mostrar claramente o quadro de dados.Nota - Estou usando os Notebooks Jupyter.
fonte