TypeError: itertuples() отсутствует 1 обязательный позиционный аргумент: 'self'

Я пытаюсь прочитать файл PDF и сохранить некоторые данные

import PyPDF2
import os
from pandas import DataFrame as df

FilePath = "/home/milenko/Documents/komp/"
FileName = "stats.pdf"
output_filename = "export.txt"
PageStart = 184
PageEnd = 185

for row in df.itertuples():
    page_start, page_end = row.PageStart, row.PageEnd
    filename = os.path.join(row.FilePath, row.FileName)
    with PdfFileMerger() as merger:
        merger.append(filename, pages=(page_start, page_end))
        merger.write(output_filename)

Я получил это

  File "b21.py", line 11, in <module>
    for row in df.itertuples():
TypeError: itertuples() missing 1 required positional argument: 'self'

Первоначально я пытался прочитать одну страницу с терминала, но я получил данные, которые вообще не были отформатированы

 pageObj = pdfReader.getPage(184)
"Appendix tables171Table A5 (continued) World merchandise exports by region and selected economy, 1990-00(Million dollars)19901991199219931994199519961997199819992000  Slovenia --668160836828831683128372904886048733  Spain556426017764334I609357312991613102091104277109037110246113747  Sweden5754055217561184985761292795848487982883849448484286933  Switzerland6378461517656786318570360816418084376150788568030081534 

Как решить эту проблему? Я ищу любое решение, которое будет печатать данные в таблицы или что-либо еще, что может быть экспортировано и обработано.

1 ответ

Решение

О TypeError:

itertuples это Dataframe метод, т.е. он должен быть вызван из экземпляра класса Dataframe, Вы переименовываете класс Dataframe в df когда вы делаете from pandas import DataFrame as df вместо того, чтобы создавать его.

Сделайте экземпляр с df = Dataframe() и тогда ты сможешь позвонить itertuples() (очевидно, вам также необходимо заполнить информационный фрейм данными, прежде чем вы сможете выполнить итерации по нему).

О вашем использовании itertuples:

Я не совсем уверен, что вы пытаетесь сделать здесь, но я думаю, что вы должны взглянуть на itertuples документация (и пример внутри). Функция перебирает данные внутри фрейма данных. Вы даже не открываете свой PDF-файл, не говоря уже о чтении данных из него.

Другие вопросы по тегам