微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用python中的数值范围从excel文件中提取一组特定的值?

如何解决如何使用python中的数值范围从excel文件中提取一组特定的值?

我打算做什么:

我有一个包含电压和电流数据的 excel 文件,我想从一个特定的工作表中提取它,比如“IV_RAW”。这些值仅来自第 4 行且位于 D 列和 E 列中。 假设值如下所示:

V(电压) I(当前)
47 1
46 2
45 3
0 4
-0.1 5
-10 5

现在,我只想取出以 45 电压 (V) 开头的值,不应取负电压。还需要取出相应的电流 (I) 值。必须对多个 excel 文件执行此操作。所以不能从特定的行号开始,而应以电压值为准。

我所知道的:

我只知道如何使用 openxyl 取出整个值集:

loc = ("path")
wb = load_workbook("Data") #thefilename
ws = wb["IV_raw"] #theactiveworksheet 

#to extract the voltage and current data: 
for row in ws.iter_rows(min_row=1,max_col=3,max_row=2,values_only=True): 
      
        print(row)

我是一名中午编码员,是 Python 新手。所以如果你们能提供帮助,那将非常有帮助。如果有带有 pandas 的简化版本,那就太好了。 提前致谢

解决方法

以下使用 pandas,您绝对应该看一看。使用 sheet_name 设置 sheet_name,header 是标题的行索引(从 0 开始,因此第 4 行 -> 3),usecols 使用 A1 表示法定义列。>

最后一行过滤数据框。如果我理解正确,那么您需要 0 到 45 之间的电压,这就是示例所做的,df 是您生成的 data_frame

import pandas as pd
file_loc = "path.xlsx"
df = pd.read_excel(file_loc,sheet_name = 'IV_raw',header = 3,usecols = "D:E")
df = df[(df['V(voltage)'] > 0) & (df['V(voltage)'] < 45)]
,

以您的示例为基础,您可以使用以下示例来获取所需内容

from openpyxl import load_workbook

wb = load_workbook(filepath,data_only=True) #load the file using its full path
ws = wb["Sheet1"] #theactiveworksheet 

#to extract the voltage and current data: 
data = ws.iter_rows(min_col=4,max_col=5,min_row=2,max_row=ws.max_row,values_only=True)
output = [row for row in data if row[0]>45]
,

你可以试试这个,

import openpyxl

tWorkbook = openpyxl.load_workbook("YOUR_FILEPATH")
tDataBase = tWorkbook.active

voltageVal= "D4"
currentVal= "E4"

V = tDataBase[voltageVal].value
I = tDataBase[currentVal].value

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。