【问题标题】:Running code through a folder of files using Pandas使用 Pandas 在文件夹中运行代码
【发布时间】:2018-01-01 17:32:01
【问题描述】:

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

通过研究,我至少设法让它读取文件夹中的文件名,但我不知道如何在现有代码中实现。

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

现在这里是我用来读取文件夹的代码:

import os
import glob

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

这是我较大代码文件的导入部分的 sn-p:

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)

感谢任何帮助!

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    天哪!当您整天盯着这个并最终意识到这是一个缩进问题时。 FML。谢谢大家!

    【讨论】:

      【解决方案2】:

      您可以遍历每个文件名,将它们传递给 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)
      

      【讨论】:

      • 是否需要在零件记分卡的#Prints 标题信息下应用相同的概念?因为我在那里调用了一个特定的文件名
      • 仅当您想打印每个文件的标题时。
      • 谢谢詹姆斯,我只需要弄清楚为什么我不断收到“ValueError:“Intr Req”不在列表中。每次我尝试运行它时,它都会返回一个不在列表中的不同字段名称。
      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2019-05-09
      • 2019-09-08
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多