Não é possível renomear colunas de um objeto de tabela / lista. (python / tabular)

Oct 28 2020

Tenho lutado com esse assunto por 2 dias inteiros devido à minha incompetência. Depois de tentar quase todo o stackoverflow e outras soluções, infelizmente ainda não tive sorte.

Estou usando o Tabular-Py para importar tabelas de PDFs. Depois disso, ele já está "perfeitamente" no que parece ser um dataframe. A parte do código usada para isso é:

tables = tabula.read_pdf(file, pages=18, lattice=True, multiple_tables = False)
Print(Tables)

[Saída após imprimir a tabela] [1]: https://i.stack.imgur.com/82Qpa.png

No entanto, parece ser um objeto de lista, pois está me impedindo de fazer qualquer outra coisa com ele além de imprimir. Mesmo usar inteiros e renomear colunas não funciona devido aos erros que levam de volta a "Não é possível XX porque é um objeto de lista". Tive a impressão de que a Tabular cria um Dataframe direto do Pandas.

Agora, quando tento adicionar o seguinte código para renomear as colunas conforme desejado:

tables.columns = ['HS_Code', 'Product', 'PreviousMonth', 'CurrentMonth', 'LastYear']

Recebo o erro:

AttributeError: o objeto 'list' não tem atributos 'colunas'

Eu tentei muitas formas de renomear e usar diferentes conjuntos de saída, como Json. Ainda sem sorte, ainda é um "objeto de lista".

Alguém tem experiência neste assunto? Como posso garantir que a Tabela / Dataframe que possuo seja um dataframe real em vez de um objeto de lista?

Qualquer dica seria muito apreciada.

Respostas

AndreS. Oct 28 2020 at 17:44

Não estou familiarizado com objetos tabula-py, mas considerando esta postagem, você pode fazer o seguinte:

  1. use pandas.read_clipboard()após copiar o conteúdo do pdf manualmente ou 2. salve o objeto tabula-py como csv e use pandas.read_csv()para obter o DataFrame

Depois, você pode manipular os dados (por exemplo, alterar os nomes das colunas) usando o pandas.