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