使用Pandas处理InSDN数据集时无法检索DDoS条目求助
问题解决:InSDN数据集无法检索DDoS条目
你的问题根源在于数据集变量被错误覆盖:在筛选DDoS之前,你已经把df变量替换成了仅包含DoS条目的子集,后续再在这个子集中查找DDoS,自然找不到匹配项。
正确处理方式
不要直接覆盖原始数据集变量,每次筛选都基于原始数据操作,或者用新变量存储筛选结果:
import pandas as pd # 加载原始数据集 df = pd.read_csv('./InSDN_DatasetCSV/OVS.csv') print(df['Label'].value_counts()) # 可查看各类标签的数量 # 用新变量存储DoS筛选结果,不修改原始df df_dos = df[df['Label'] == 'DoS'] print(df_dos.shape) # 返回(52471, 84) # 基于原始df筛选DDoS条目 df_ddos = df[df['Label'] == 'DDoS'] print(df_ddos.shape) # 此时会返回正确的(48413, 84)
错误原因说明
你之前的代码执行df = df[df['Label'] == 'DoS']后,df已经变成了仅包含DoS记录的DataFrame,其中不存在任何DDoS条目。后续再执行df = df[df['Label'] == 'DDoS'],自然会得到行数为0的空数据集。
内容的提问来源于stack exchange,提问作者Ermias Tsegu
相关产品推荐
相关产品推荐

