2017-06-16 99 views
-1

我有,我已經導入爲大熊貓數據幀它看起來像這樣的工作:通過數據幀迭代來創建PDF文檔

文件名的文件路徑日期Pagestart頁尾

文件1路徑1日期1 5 10

file2 path2 date2 20 100

我的目標是遍歷數據框,並根據指定的頁面範圍爲每一行創建一個PDF。第一行應該通過從file1中提取5-10頁來創建一個新的PDF,第二行應該通過從file2中提取20-100頁建立一個新的PDF。

我很難找到一個很好的方法,先遍歷一個數據框,然後根據頁面範圍創建PDF。有沒有辦法很容易地遍歷數據框?有沒有一個模塊,將創建PDF,我可以指定一個頁面範圍(我已經用.getPage()過去PyPDF2,但我不認爲這允許一個頁面範圍,而是一個單一的值)?

編輯:我想我找到了一個遍歷數據框的好方法,但我仍然在尋找構建PDF的方法。這裏是我的迭代:

i = 0 
for row in df.iterrows(): 
    iteration = df.iloc[i] 
    i +=1 
+0

的迭代,你可以用'DataFrame.itertuples()' –

+0

您可以用'枚舉(迭代器)'取代'我= 0'和'我+ = 1 ' –

+0

是枚舉更快/更好?另外,您是否對PDF創建方面有任何建議? – Zfrieden

回答

1
import PyPDF2 
import os 

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

要爲每行創建一個新文件,就像在問題中一樣,您需要將帶有PdfFileMerger()的合併:'和merger.write(output_filename)'帶入循環中。 – EFT

+0

@EFT我改變了答案 –