def load_file(path): data = pd.read_csv(path, sep=',') is_benign = data[' Label'] == 'BENIGN' flows_normal = data[is_benign] flows_abnormal_full = data[~is_benign] sizeDownSample = len(flows_normal) * mult if (len(flows_normal) * mult) < (len(flows_abnorm
时间: 2023-06-18 17:06:13 浏览: 45
al_full)):
flows_abnormal = flows_abnormal_full.sample(n=sizeDownSample)
else:
flows_abnormal = flows_abnormal_full
return pd.concat([flows_normal, flows_abnormal])
这段代码是用来从一个 csv 文件中读取数据,并且对数据进行处理,主要是把正常的数据和异常的数据按照一定比例进行采样,最终返回处理后的数据集。
具体来说,参数 path 是 csv 文件所在路径,mult 是采样倍数,即将正常流量的数量乘以 mult 作为采样后的异常流量数量。
代码首先用 pandas 库的 read_csv 函数读取 csv 文件,并且通过判断每条流量的标签是否为 BENIGN 来区分正常流量和异常流量。
然后根据采样倍数 mult 和正常流量数量计算采样后的异常流量数量 sizeDownSample。如果采样后的异常流量数量小于原始异常流量数量,则使用 sample 函数进行采样,否则直接使用全部异常流量。
最后使用 concat 函数将正常流量和异常流量合并成一个数据集并返回。
相关问题
benign_file=[] malignant_file=[] for root, dirs, files in os.walk("./lin", topdown=False): if 'label' not in root: for file in files: if file[-3:]=='tif': tmp = file.split('_') label_file = str(int(tmp[-1][0:4]) - 3*116).zfill(3)+'.tif' if 'benign' in root: label_file_abs = os.path.join(root.replace('benign', 'benign_label'),label_file) elif 'malignant' in root: label_file_abs = os.path.join(root.replace('malignant','malignant_label'), label_file) if os.path.isfile(label_file_abs): if 'benign' in root: benign_file.append((os.path. join(root, file), label_file_abs)) elif 'malignant' in root: malignant_file.append((os.path.join(root, file), label_file_abs)) print(malignant_file) print(benign_file)输出是个空列表怎么解决
首先,需要确认文件路径是否正确。可以在代码中添加一个 `print(root)` 的语句,确保程序遍历到了正确的文件夹。
其次,可以检查 label 文件夹是否存在,以及文件名是否正确。可以手动检查一下 `label_file_abs` 对应的文件是否存在。
最后,可以尝试使用绝对路径来代替相对路径,确保程序可以正确读取文件。可以使用 `os.path.abspath()` 函数来获取绝对路径。
def curtail_pcap(self): self.label_6.setText('程序正在执行,请稍等') integrate = [self.label_5,self.label_6,self.label_7] #替换显示的图片 self.label_5.hide() self.label_7.show() self.tableWidget.clearContents() num_cores = int(mp.cpu_count()) pool = mp.Pool(num_cores) moder = cut_pcap.pcap_cut() # 继承截取pcap的类,传入 clip_num = int(self.lineEdit_2.text()) #截取数据包的数量 # moder.read_pcap2('benign.csv',pool) self.data = moder.read_pcap2('save.pkl', pool,clip_num) # 获得pcap提取的流量包的数据 # csv_path = 'benign.csv' # pickle_path = 'save.pkl' # title.read_csv(csv_path,self.tableWidget) #将csv读取到PYQT5 title.read_pickle(self.data, self.tableWidget) # 将pickle读取到PYQT5 QMessageBox.information(self, 'pcap截取', '截取成功!') # data_save=datasave.savedata("./"+csv_path,filename="test_data") data_save=datasave.savedata(self.data,filename="test_data") data_save.save_excel() self.label_6.setText('程序未运行') self.label_5.show() self.label_7.hide()
这段代码是用Python编写的,其中定义了一个名为“curtail_pcap”的函数。函数中,通过Qt库中的方法设置了三个窗口组件的文本显示内容。其中self.label_6显示“程序正在执行,请稍等”,其他两个组件显示的内容没有在代码中给出。