1
satisfaction_level  last_evaluation number_project  average_montly_hours    time_spend_company  Work_accident   left    promotion_last_5years   dept    salary
0.38    0.53    2   157 3   0   1   0   TECHNICAL   low
0.8 0.86    5   262 6   0   1   0   HR  medium
0.11    0.88    7   272 4   0   1   0   HR  medium
0.72    0.87    5   223 5   0   1   0   FINANCE low
0.37    0.52    2   159 3   0   1   0   MARKETING   low
0.41    0.5 2   153 3   0   1   0   TECHNICAL   low
0.1 0.77    6   247 4   0   1   0   HR  low
0.92    0.85    5   259 5   0   1   0   FINANCE low
0.89    1   5   224 5   0   1   0   HR  low

上記のデータを使用して、DictVectorizer を使用して C を変換しようとしました。コードを以下に示します


import pandas as pd
from sklearn.feature_extraction import DictVectorizer

dv=DictVectorizer() 
hr_data=pd.read_csv(r"C:\Users\IBM_ADMIN\Desktop\data\HR_comma_sep.csv")
dv.fit_transform(X=hr_data.dept)

しかし、それはエラーを投げました:

'str' オブジェクトには属性 'items' がありません

4

5 に答える 5

4

LabelEncoderを使用します。

In [304]: df.dept
Out[304]:
0    TECHNICAL
1           HR
2           HR
3      FINANCE
4    MARKETING
5    TECHNICAL
6           HR
7      FINANCE
8           HR
Name: dept, dtype: object

In [305]: from sklearn.preprocessing import LabelEncoder

In [306]: le = LabelEncoder()

In [307]: df['dept'] = le.fit_transform(df['dept'])

In [308]: df.dept
Out[308]:
0    3
1    1
2    1
3    0
4    2
5    3
6    1
7    0
8    1
Name: dept, dtype: int64

In [309]: le.classes_
Out[309]: array(['FINANCE', 'HR', 'MARKETING', 'TECHNICAL'], dtype=object)
于 2017-11-16T16:36:49.793 に答える
2

または、使用する場合がありますcategory

df.dept.astype('category').cat.codes
Out[925]: 
0    3
1    1
2    1
3    0
4    2
5    3
6    1
7    0
8    1
dtype: int8

df.dept.astype('category').cat.categories
Out[926]: Index(['FINANCE', 'HR', 'MARKETING', 'TECHNICAL'], dtype='object')
于 2017-11-16T16:39:40.323 に答える