Python/Pandas:迭代Excel文件并提取信息

Python/Pandas:迭代Excel文件并提取信息,python,pandas,openpyxl,Python,Pandas,Openpyxl,我发现了从同一文件的不同页面提取信息的线索,以及类似问题的解决方案,但与我的不完全相同 我有几本Excel工作簿,每本都有几张纸。我想反复浏览每个工作簿,并从一个名为“3.价格”的工作表中提取信息。此工作表在所有文件中都可用。每个文件中要从该表中提取的信息有两条。第一个始终位于单元格范围E13:H13中,第二个位于单元格F19、I19和K19中 我希望将两条提取的信息相邻放置(对于给定的文件),然后将每个文件的提取内容堆叠在一个主文件的顶部。此外,组合文件的第一列应该是文件名 比如说: 到目前

我发现了从同一文件的不同页面提取信息的线索,以及类似问题的解决方案,但与我的不完全相同

我有几本Excel工作簿,每本都有几张纸。我想反复浏览每个工作簿,并从一个名为“3.价格”的工作表中提取信息。此工作表在所有文件中都可用。每个文件中要从该表中提取的信息有两条。第一个始终位于单元格范围E13:H13中,第二个位于单元格F19、I19和K19中

我希望将两条提取的信息相邻放置(对于给定的文件),然后将每个文件的提取内容堆叠在一个主文件的顶部。此外,组合文件的第一列应该是文件名

比如说:

到目前为止我都试过了,但运气不好

from openpyxl import load_workbook
import os
import pandas as pd

directory = os.listdir('C:\\User\\files')

for file in directory:
    if os.path.isfile(file):

        file_name = file[0:3]
        workbook = load_workbook(filename = file)
        sheet = workbook['3. Prices']
        e13 = sheet['E13'].value
        f13 = sheet['F13'].value
        g13 = sheet['G13'].value
        h13 = sheet['H13'].value
        f19 = sheet['F19'].value
        i19 = sheet['I19'].value
        k19 = sheet['K19'].value

        df = df.append(pd.DataFrame({
                "File_name":file_name, 
                "E13":e13, "F13":f13, "G13":g13,"H13":h13,
                "F19":f19,"I19":i19,"K19":i19,
                }, index=[0]))

我想出来了。我缺少两个元素:1)更改当前工作目录以匹配变量“directory”中的目录;2)在开始时定义数据帧

from openpyxl import load_workbook
import os
import pandas as pd

os.chdir('C:\\User\\files') 
directory = os.listdir('C:\\User\\files')

df=pd.DataFrame()    

for file in directory:
    if os.path.isfile(file):

        file_name = file[0:3]
        workbook = load_workbook(filename = file, data_only=True)
        sheet = workbook['3. Prices']
        e13 = sheet['E13'].value
        f13 = sheet['F13'].value
        g13 = sheet['G13'].value
        h13 = sheet['H13'].value
        f19 = sheet['F19'].value
        i19 = sheet['I19'].value
        k19 = sheet['K19'].value

        df = df.append(pd.DataFrame({
                "File_name":file_name, 
                "E13":e13, "F13":f13, "G13":g13,"H13":h13,
                "F19":f19,"I19":i19,"K19":i19,
                }, index=[0]))

我想出来了。我缺少两个元素:1)更改当前工作目录以匹配变量“directory”中的目录;2)在开始时定义数据帧

from openpyxl import load_workbook
import os
import pandas as pd

os.chdir('C:\\User\\files') 
directory = os.listdir('C:\\User\\files')

df=pd.DataFrame()    

for file in directory:
    if os.path.isfile(file):

        file_name = file[0:3]
        workbook = load_workbook(filename = file, data_only=True)
        sheet = workbook['3. Prices']
        e13 = sheet['E13'].value
        f13 = sheet['F13'].value
        g13 = sheet['G13'].value
        h13 = sheet['H13'].value
        f19 = sheet['F19'].value
        i19 = sheet['I19'].value
        k19 = sheet['K19'].value

        df = df.append(pd.DataFrame({
                "File_name":file_name, 
                "E13":e13, "F13":f13, "G13":g13,"H13":h13,
                "F19":f19,"I19":i19,"K19":i19,
                }, index=[0]))

如果没有运气,请更加具体。顺便说一句,最好使用临时数据结构并在末尾创建数据帧,而不是重复追加或连接。如果没有运气,请更加具体。顺便说一句,最好使用临时数据结构并在末尾创建数据帧,而不是重复附加或连接。