首页 > 解决方案 > 无法重命名表/列表对象中的列。(蟒蛇/表格)

问题描述

由于我的无能,我已经在这件事上苦苦挣扎了整整两天。在尝试了几乎所有的 stackoverflow 和其他解决方案之后,我发现遗憾的是仍然没有运气。

我正在使用 Tabular-Py 从 PDF 中导入表格。之后它已经“完美”地呈现在一个数据框中。用于此的代码部分是:

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

【打印表格后的输出】【1】:https ://i.stack.imgur.com/82Qpa.png

但是,它似乎是一个列表对象,因为除了打印之外,它阻止我用它做任何其他事情。即使使用整数和重命名列也不起作用,因为错误会导致“不能 XX,因为它是一个列表对象”。我的印象是 Tabular 直接制作了 Pandas Dataframe。

现在,当我尝试添加以下代码以根据需要重命名列时:

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

我得到错误:

AttributeError:“列表”对象没有属性“列”

我尝试了多种形式的重命名和使用不同的输出集,例如 Json。仍然没有运气,它仍然是一个“列表对象”。

有没有人有这件事的经验?如何确保我拥有的表/数据框是实际的数据框而不是列表对象?

任何提示将不胜感激。

标签: pythonpandastabular

解决方案


我不熟悉 tabula-py 对象,但考虑到这篇文章,您可以执行以下操作:

  1. 手动复制pdf内容后使用pandas.read_clipboard()或2.将tabula-py对象保存为csv并用于pandas.read_csv()获取DataFrame

之后,您可以使用 pandas 操作数据(例如更改列名)。


推荐阅读