1. 错误:

在SNSData类中,generate_conductivity()方法中的以下代码:

self.regular_data["conductivity"] += self.df["frequency"].isin([it]) * np.interp(self.df["R"], one_freq_saline_real_list[::-1], conductivity_list[ ::-1])

应该修改为:

self.regular_data["conductivity"] += self.df["frequency"].isin([it]) * np.interp(self.df["R"][self.df["frequency"].isin([it])], one_freq_saline_real_list[::-1], conductivity_list[ ::-1])

原因:

np.interp()方法的第一个参数需要是递增序列,但是在原代码中,self.df["R"]是整个数据集中的R值,不是某一个频率下的R值,因此需要加上筛选条件self.df["frequency"].isin([it])。

  1. 错误:

在calculate_conductivity()方法中的以下代码:

the_df = df[(df['name'] == 'tumor') & (df['property'] == "A|B|C|D|E|F|G|H") & (df['frequency'] == index[i]) & ( df['conductivity'] > 0)]

应该修改为:

the_df = df[(df['name'].str.contains('tumor|normal|peritumor')) & (df['property'].str.contains("A|B|C|D|E|F|G|H")) & (df['frequency'] == index[i]) & ( df['conductivity'] > 0)]

原因:

在原代码中,只筛选了name为tumor的数据,但实际上还需要包括normal和peritumor。另外,property列中的属性值和原代码中给出的不完全一致,因此需要使用str.contains()方法进行模糊匹配。

import numpy as npimport pandas as pdimport osfrom openpyxl import Workbookfrom openpyxlutilsdataframe import dataframe_to_rowsclass SNSData def __init__self pandas_dir=#open 文件夹 if ospathis

原文地址: https://www.cveoy.top/t/topic/bS4N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录