You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.2 KiB
Python

import pandas as pd
def drop_unique_columns(df: pd.DataFrame):
nunique = df.nunique() # 计算每一列的唯一值的数量
cols_to_drop = nunique[nunique == 1].index # 找到只有一个唯一值的列的索引
df.drop(cols_to_drop, axis=1, inplace=True) # 删除这些列
print(cols_to_drop) # 输出删除的列的列名
return df
def select_label_rows(df: pd.DataFrame, label: str):
return df[df.iloc[:, -1] == label]
def drop_columns_with_fix_up(df: pd.DataFrame, columns: list):
columns = [w.lstrip() for w in columns]
df = drop_columns(df, columns)
columns = [" " + w for w in columns]
df = drop_columns(df, columns)
return df
def drop_columns(df: pd.DataFrame, columns: list):
columns = [w.lstrip() for w in columns]
for column_name in columns:
cols_to_drop = df.filter(regex=column_name).columns
df.drop(cols_to_drop, axis=1, inplace=True)
return df
def get_ddos_df(df: pd.DataFrame):
return df[df.iloc[:, -1] == 'DDoS']
def is_in_bypass_list(column_name: str, bypass_list: tuple) -> bool:
for bypass in bypass_list:
if bypass in column_name:
return True
return False