将数据转换为numpy数组用于sklearn



我有一个数据集,由一些文本列(有限的可能性)和一些csv格式的数字列组成。是否有任何方法可以自动将文本列转换为数字(例如:A将为0,B将为1等)以将数据集转换为np.array ?

稍后将在scikit-learn上使用,因此在所有处理结束时,它需要是np.array

编辑:添加一行数据集:

ENABLED;ENABLED;10;MANUAL;ENABLED;ENABLED;1800000;OFF;0.175;5.0;0.13;OFF;NEITHER;ENABLED;-65;2417;"wifi01";65;-75;DISCONNECTED;NO;NO;2621454;432477;3759;2.2436838539123705E-6;

您可以对每个文本列应用sklearn.preprocessing.labelEncoder()。下面是一个例子:

import pandas as pd
df = pd.DataFrame({'col1': [1,2,3,4,5],
                  'col2': ['ON','ON','OFF','OFF','ON']})
from sklearn.preprocessing import LabelEncoder 
lb = LabelEncoder()
df['encoded'] = lb.fit_transform(df.col2)
df
  col1  col2  encoded
0   1    ON     1
1   2    ON     1
2   3    OFF    0
3   4    OFF    0
4   5    ON     1

我只是在另一列中添加了数值,但您可以替换它们。此外,您可以将它们转换为numpy数组:

df.as_matrix()
array([[1, 'ON', 1],
       [2, 'ON', 1],
       [3, 'OFF', 0],
       [4, 'OFF', 0],
       [5, 'ON', 1]], dtype=object)
下面是如何使用numpy进行编码。在这个例子中,我只是传递一个python列表:
alist = ['ON','ON','OFF','OFF','ON']
uniqe_values , y = np.unique(alist, return_inverse=True)
print uniqe_values
print y

结果如下:

['OFF' 'ON']
[1 1 0 0 1]

相关内容

  • 没有找到相关文章

最新更新