【发布时间】:2019-02-27 16:00:03
【问题描述】:
我正在开展一个项目,将 One Hot Encoding 技术应用于 .binetflow 文件的分类列。
代码:
import pandas as pd
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
mydataset = pd.read_csv('originalfiletest.binetflow')
le = LabelEncoder()
dfle = mydataset
dfle.State = le.fit_transform(dfle.State)
X = dfle[['State']].values
ohe = OneHotEncoder()
Onehot = ohe.fit_transform(X).toarray()
dfle['State'] = Onehot
mydataset.to_csv('newfiletest.binetflow', columns=['Dur','State','TotBytes','average_packet_size','average_bits_psecond'], index=False)
目前,我正在使用 Pandas,并且能够应用该技术。问题是当我需要写入第二个文件。
当我尝试编写时,我期望的输出是,例如:变量 Onehot 中的 0001 或 0.0.0.1,但是当我尝试将它传递给列 dfle[' 时得到的是 0.0 或 1.0状态']。 图片可以在下面找到。
此外,应该只写的列,当我在编译器上写 print 时,它显示正确,但是当它写入文件时,它会添加几个小数位。
【问题讨论】:
-
文本信息应该作为测试题的一部分,而不是屏幕截图,因此它是可搜索和可复制的。
标签: python scikit-learn one-hot-encoding