Estou lutando com uma coisa aparentemente muito simples. Eu tenho um quadro de dados do pandas contendo uma string muito longa.
df = pd.DataFrame({'one' : ['one', 'two',
'This is very long string very long string very long string veryvery long string']})
Agora, quando tento imprimir o mesmo, não vejo a string inteira, prefiro ver apenas uma parte da string.
Eu tentei seguir as opções
- usando
print(df.iloc[2])
- usando
to_html
- usando
to_string
- Uma das respostas stackoverflow sugeriu aumentar a largura da coluna usando a opção de exibição do pandas, que também não funcionou.
- Eu também não entendi como
set_printoptions
vai me ajudar.
Todas as ideias são apreciadas. Parece muito simples, mas não consigo entender!
Use
pd.set_option('display.max_colwidth', -1)
para quebras de linha automáticas e células multilinhas.Este é um ótimo recurso sobre como usar a exibição de jupyters com pandas ao máximo.
fonte
pd.set_option('display.max_colwidth', None)
para versões mais recentesOutra abordagem bastante simples é chamar a função de lista:
Não vale a pena mencionar, isso não é bom conventar para listar as colunas inteiras, mas para uma linha simples - por que não
fonte
Outra maneira mais fácil de imprimir a string inteira é chamar
values
o dataframe.A saída será
fonte
É isso que você pretendia fazer?
fonte
Basta adicionar a seguinte linha ao seu código antes de imprimir.
Você pode simplesmente seguir as etapas a seguir para definir outras opções adicionais,
Você pode alterar as opções para o recurso pandas max_columns como segue para exibir mais colunas
(isso permite a exibição de 10 colunas, você pode alterar isso conforme necessário)
Assim, você pode alterar o número de linhas que você precisa para exibir como segue para exibir mais linhas
(isso permite imprimir 999 linhas por vez)
isso deve funcionar bem
Por favor, consulte o documento para alterar mais opções / configurações para pandas
fonte
A maneira como geralmente lido com a situação que você descreve é usar o
.to_csv()
método e escrever para stdout:Atualização: agora deve ser possível usar apenas em
None
vez desys.stdout
com efeito semelhante!Isso deve despejar todo o dataframe, incluindo a totalidade de quaisquer strings. Você pode usar os parâmetros to_csv para configurar separadores de coluna, se o índice é impresso, etc. Porém, será menos bonito do que renderizá-lo corretamente.
Eu postei isso originalmente em resposta à pergunta um tanto relacionada em Dados de saída de todas as colunas em um dataframe em pandas
fonte
Eu criei uma pequena função de utilidade, que funciona bem para mim
Posso alterar o comprimento da largura de acordo com minha exigência, sem definir qualquer opção permanentemente.
fonte
Se você estiver usando o notebook jupyter, também pode imprimir o dataframe do pandas como uma tabela HTML, que imprimirá strings completas.
Resultado
fonte