python - 无法重命名表/列表对象中的列。(蟒蛇/表格)
问题描述
由于我的无能,我已经在这件事上苦苦挣扎了整整两天。在尝试了几乎所有的 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。仍然没有运气,它仍然是一个“列表对象”。
有没有人有这件事的经验?如何确保我拥有的表/数据框是实际的数据框而不是列表对象?
任何提示将不胜感激。
解决方案
我不熟悉 tabula-py 对象,但考虑到这篇文章,您可以执行以下操作:
- 手动复制pdf内容后使用
pandas.read_clipboard()
或2.将tabula-py对象保存为csv并用于pandas.read_csv()
获取DataFrame
之后,您可以使用 pandas 操作数据(例如更改列名)。
推荐阅读
- ruby-on-rails - 与 Apache 结合时出现 Rails 403 错误
- android - ButterKnife 有时会在 Android 8.x 上停止工作
- weblogic12c - java.lang.ClassNotFoundException:freemarker.template.Configuration
- c# - 在文本框字符串的开头添加一个字符
- php - 在 laravel 帖子上显示评论数据
- c++ - 为什么 free() 函数不向操作系统返回内存?
- batch-file - 如何使用批处理文件从变量中删除重复的逗号分隔值?
- node.js - 从另一个 docker 容器连接到 Mongodb docker 容器
- javascript - Match() 方法的正则表达式错误
- vba - 如何使用 VBA 获取我的单元格的行号