python - 遍历多个 Excel 文件,使用 python 将特定单元格保存到数据框中
问题描述
问题:我想遍历 Excel 文件并提取特定值并保存到数据框。
原因:这有助于 QA 流程,通过循环,我可以将所有报告拉到一个文件夹中并快速保存关键数据点。当前过程包括打开每个文件并将某些单元格复制并粘贴到“主 QA”xlsx 文件中
他们都有两个数据点Date
和count
单元格B4
和单元格C4
与数据点
我们可以使用打印每个文件的每个数据点openpyxl
import os
import openpyxl
import pandas as pd
path=r"C:\Users\Desktop\StackOverflow"
os.chdir(path)
for resi_files in os.listdir(path):
if os.path.isfile(resi_files):
myworkbook=openpyxl.load_workbook(resi_files)
worksheet= myworkbook['Sheet1']
print(resi_files)
print("Date")
print(worksheet.cell(4, 2).value)
print("count")
print(worksheet.cell(4, 3).value)
这将为我们提供以下输出:
然而!这对我们没有任何好处,我们希望能够比较不同的单元格值以进行质量检查。所以我们需要将这些值保存到数据框中。
解决方案
要保存到数据框,我们必须执行以下操作:
import os
import openpyxl
import pandas as pd
import numpy as np #added to save count as a number
path=r"C:\Users\Desktop\StackOverflow"
os.chdir(path)
merged=pd.DataFrame()
for resi_files in os.listdir(path):
if os.path.isfile(resi_files):
myworkbook=openpyxl.load_workbook(resi_files)
worksheet= myworkbook['Sheet1']
data = pd.DataFrame(data=[worksheet.cell(4, 2).value], columns= ['Date'])
data['count'] = np.array([worksheet.cell(4, 3).value])
# to grab a different cell, change the 4 and 3
# 4 means 4 rows down, 3 is 3 columns over, not indexed at 0
merged=pd.concat([merged,data])
通过打印merged
,我们看到我们有一个更易于使用的数据框。
推荐阅读
- node.js - 禁用 axios 请求日志记录
- kubernetes - KubernetesPodOperator 指定字典资源
- angular - Angular 发出 http get 请求,然后使用 get 请求中的数据发出 put 请求
- javascript - Get from hls.js response code and message from playlist.m3u8
- java - 当类包含接口类型的变量时,如何通过杰克逊进行序列化/反序列化?
- c - 在 C 中打印数字
- javascript - 在 ReactJS 中渲染组件数组
- google-apps-script - onclick 动作完成执行后返回
- python - 适用于 Windows 和 Linux 的 VS 代码 PYTHONPATH
- javascript - DOM 只注册一键点击事件移除元素