使用Pandas在文件夹中运行代码

时间:2017-07-26 11:52:42

标签: python python-3.x pandas

所以我设法在pandas中编写代码来进行我需要的数据分析并导出到新的.xlsx文件。哪个很棒,除了它是一个文件,我通常有40多个文件,我想运行它。

通过研究,我设法至少让它读取文件夹中的文件名,但我对如何实现现有代码感到茫然。

目标: 在文件夹中的每个.xlsx文件上运行代码,并将分析的数据作为新的.xlsx文件吐出。

现在这里是我想出的用于阅读文件夹的代码:

import os
import glob

os.chdir('C:/Users/PCTR261010/Desktop/PartReviewExport')
FileList = glob.glob('*.xlsx')
print(FileList)

以下是我的较大代码文件的导入部分的片段:

import os
import glob
import pandas as pd

# Prints header information in Part Scorecard
df = pd.read_excel('GAT_US_PartReview_2017-06-23.xlsx', header=None, 
skipinitialspace=True, skiprows=1)
header = df.head(5).filter([0,2], axis=1)

# Begins Data Analysis of Part Scorecard
fields = ['Appl Req', 'Appl Count ', 'Intr Req', 'Intr Count ', 'OE Intr 
Req', 'Has OE Intr', 'Has Attr Editor',
      'Part IMG Req', 'Has Part IMG', 'Has MPCC', 'Warr Req', 'Has Warr 
TXT', 'Has Warr PDF', 'MSDS Req',
      'Has MSDS', 'UPC Req', 'Has UPC', 'Has UNSPSC', 'Valid Part']

df = pd.read_excel('GAT_US_PartReview_2017-06-23.xlsx', 
skipinitialspace=True, skiprows=7, usecols=fields,
               dtype=str)

任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:1)

您可以遍历每个文件名,并将它们传递给pandas

import os
import glob
import pandas as pd

os.chdir('C:/Users/PCTR261010/Desktop/PartReviewExport')
FileList = glob.glob('*.xlsx')
print(FileList)


for fname in FileList:  
    # Prints header information in Part Scorecard
    df = pd.read_excel(fname, header=None, 
    skipinitialspace=True, skiprows=1)
    header = df.head(5).filter([0,2], axis=1)

    # Begins Data Analysis of Part Scorecard
    fields = ['Appl Req', 'Appl Count ', 'Intr Req', 'Intr Count ', 'OE Intr 
    Req', 'Has OE Intr', 'Has Attr Editor',
          'Part IMG Req', 'Has Part IMG', 'Has MPCC', 'Warr Req', 'Has Warr 
    TXT', 'Has Warr PDF', 'MSDS Req',
          'Has MSDS', 'UPC Req', 'Has UPC', 'Has UNSPSC', 'Valid Part']

    df = pd.read_excel(fname, skipinitialspace=True, 
                       skiprows=7, usecols=fields, dtype=str)

    # ... analysis here ...
    df.to_excel('out_' + fname)

答案 1 :(得分:0)

OMG!当你花一整天时间盯着这个并最终意识到这是一个咒语问题。 FML。谢谢你们!