Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao testar pandas em uma aplicação Streamlit, percebi que funções como shape, head e columns exibem normalmente, mas ao usar df.info() o resultado é None. Isso acontece porque o método info() não retorna nada — ele imprime na tela. Então, ao tentar exibir com st.write, acaba mostrando None.
A solução prática é usar uma abordagem diferente: capturar a saída do info() usando o módulo io para redirecionar a stdout, assim podemos exibir o conteúdo como texto no Streamlit.
import io
import sys
import streamlit as st
import pandas as pd
def get_df_info(df):
buffer = io.StringIO()
sys.stdout = buffer
df.info()
sys.stdout = sys.__stdout__
return buffer.getvalue() O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
# Código de exemplo
df = pd.read_csv("sales.csv")
st.write("Shape:", df.shape)
st.write("Head:", df.head())
st.write("Colunas:", df.columns) Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
# Captura e exibe o info
st.text(get_df_info(df))
Assim, o info() vira uma string que pode ser exibida no app, sem confusão. Essa abordagem é útil pra quem precisa de detalhes completos de um DataFrame no painel. Vocês têm alguma estratégia diferente pra essa situação? Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Carregando comentários...