在一csv文件中将标签为proto、service、state、attack_cat的列进行one-hot编码并替换掉原来值删除id、label列将剩余的标签进行正则化处理并保存在新的csv文件中
以下是使用Python pandas库实现上述操作的示例代码:
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import OneHotEncoder
# 读取CSV文件
data = pd.read_csv("input.csv")
# 删除"id"和"label"列
data = data.drop(columns=["id", "label"])
# 获取需要进行One-Hot编码的列
columns_to_encode = ["proto", "service", "state", "attack_cat"]
# One-Hot编码
encoder = OneHotEncoder(sparse=False)
encoded_columns = pd.DataFrame(encoder.fit_transform(data[columns_to_encode]))
encoded_columns.columns = encoder.get_feature_names(columns_to_encode)
# 删除原始列
data = data.drop(columns_to_encode, axis=1)
# 拼接编码后的列
data = pd.concat([data, encoded_columns], axis=1)
# 进行正则化处理
scaler = StandardScaler()
data = pd.DataFrame(scaler.fit_transform(data), columns=data.columns)
# 保存到新的CSV文件
data.to_csv("output.csv", index=False)
请注意,这个示例中使用了sklearn库中的StandardScaler进行正则化处理,如果没有安装该库,请先通过pip install -U scikit-learn
命令安装。
原文地址: https://www.cveoy.top/t/topic/jaix 著作权归作者所有。请勿转载和采集!