循环通过单独的文件夹并创建图形

时间:2016-01-14 23:27:26

标签: python csv pdf pandas matplotlib

我想创建一个pdf文件,目录中的每个文件夹都有多个页面。因此,如果我有50个文件夹,每个文件夹中有10个项目(csv' s),我希望每个文件夹有50个pdf文件,10个页面,pdf文件代表csv数据的图形。

我可以为这样的1个文件夹执行此操作:

import pandas as pd
import os
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

#pathway to the folder
pth = (r'C:\') 
#create pdf file
with PdfPages(r'C:\.pdf') as pdf:  
    for f in os.listdir(pth):
#      ignore the pdf file that just got created
        if 'pdf' in f:
            continue
#        read each file
        df = pd.read_csv(os.path.join(pth, f), names=['NDVI', 'Percent'])
        fname=f[:-4]
        df['NDVI']=df['NDVI']/df['NDVI'].sum() * 100
        df2=df.plot(x='Percent', y='NDVI',title=fname)
        df2.set_xlabel("Value")
        df2.set_ylabel("Percent")
        fig=plt.gcf()
        pdf.savefig(fig)
        plt.close(fig)

我不想手动改变通往不同文件夹的路径,有没有办法循环浏览文件夹并创建pdf文件?

编辑:

我可以像这样访问每个子目录和文件:

for dirName, subdirList, fileList in os.walk(pth):
    print('Found directory: %s' % dirName)
    for fname in fileList:
      print('\t%s' % fname)

但我仍然不确定如何在每个目录中实际创建图表

0 个答案:

没有答案