import numpy as np import matploplib.pyplot as plt import pandas as pd import openpyxl from sklearn import decomposition def loadDataSet(filename): ex = openpyxl.load_workbook(filename) sheet = ex.get_sheet_by_name("高钾") data1 = [] data2 = [] for i in range(2,20): res = [] for j in range (2,16): res.append(sheet.cell(row=i,column = j).value) data1.append(res) sheet = ex.get_sheet_by_name("铅钡") for i in range(2,51): res = [] for j in range (2,16): res.append(sheet.cell(row=i,column = j).value) data2.append(res) return data1 , data2 def process(data,n,n): X=[] for j in range(0,len(res)-1): w.append(res[j]-res[len(res)] - 1]) for j in range(0,len(w)): down += np.exp(w[j]) ptr = [] for j in range(0,len(w)): ptr.append(np.exp(v[j])/down) ptr.append(1/down) x=[] idx =0 for j in range(0,m): if data[i][j] == 0: x.append(0) else: x.append(ptr[idx]) idx += 1 X.append(x) return X filename = 'Log-ratio变换.xlsx' data1 , data2 = loadDataSet(filename) print(data1) print(data2) data1 = process(data1,len(data1),len(data1[0])) data2 = process(data2,len(data1),len(data2[0])) wk = openpyxl.Workbook sheet1 = wk.create_sheet("高钾") sheet1 = wk.create_sheet("铅钡") for i in range(1,len(data1) + 1): for j in range(1,len(data1[0]) + 1): sheet1.cell(row = i,column = j).value = data1[i-1][j-1] for i in range(1,len(data2) + 1): for j in range(1,len(data2[0]) + 1): sheet2.cell(row = i,column = j).value = data2[i-1][j-1] wk.save('../第二小问/Log-ratio逆变换测试.xlsx')分析代码
时间: 2024-04-19 14:24:59 浏览: 67
这段代码的功能是加载一个Excel文件并进行log-ratio变换和逆变换,然后将处理后的数据保存到新的Excel文件中。
代码的主要部分包括以下几个函数和步骤:
1. `loadDataSet(filename)`: 这个函数用于加载Excel文件并读取其中的数据。它使用openpyxl库打开Excel文件,然后按照指定的工作表名称读取数据,并将数据存储在两个列表data1和data2中。
2. `process(data, n, m)`: 这个函数用于进行log-ratio变换。它接收一个数据集data,以及数据集的行数n和列数m作为参数。在函数内部,它遍历数据集的每个元素,计算log-ratio变换并存储在新的数据集X中。
3. 加载文件并处理数据:代码首先指定要处理的Excel文件的路径,并调用`loadDataSet()`函数加载数据。然后,它调用`process()`函数对data1和data2进行log-ratio变换,并将结果保存回相应的变量。
4. 创建新的Excel文件并保存处理后的数据:代码使用openpyxl库创建一个新的Excel文件,并创建两个工作表"高钾"和"铅钡"。然后,它将处理后的data1和data2数据写入到对应的工作表中。
最后,代码使用`save()`函数将新的Excel文件保存到指定路径。
请注意,代码中存在一些语法错误和逻辑问题,例如变量命名错误(`matploplib`应为`matplotlib`,`numpy`应为`np`),缩进错误,以及函数调用错误(如`openpyxl.Workbook`没有加括号)等。在运行之前,你需要修复这些错误。另外,你还需要确保安装了所需的库。
阅读全文