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
- 错误:
在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])。
- 错误:
在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()方法进行模糊匹配。
原文地址: https://www.cveoy.top/t/topic/bS4N 著作权归作者所有。请勿转载和采集!