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を変換しようとしました。コードはDictVectorizerを使用して文字列を変換する


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' object has no attribute 'items'

答えて

3

使用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) 
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') 
を使用して
+0

ニースとシンプル。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅありがとう:-) – Wen

関連する問題