У меня есть некоторые переменные, которые классифицируются как объекты. Я создал для них фиктивные переменные, но мне было интересно, как кодировать сам столбец, из которого я создал фиктивные переменные, если я даже должен это делать, чтобы избавиться от текста и сделать код текста числовым. Отфильтровываю ли я столбцы объектов при анализе (отбрасываю столбец)? Нужно ли менять столбец с «объекта» на категориальный?
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
project = pd.read_csv('c:/users/Brandon Thomas/Project.csv')
X = project.drop("Bad Indicator",axis=1) #Feature Matrix
y = project["Bad Indicator"] #Target Variable
project.info()
Note Bankruptcy Code 57642 non-null float64
Performance 57642 non-null object
Short Accrual 57642 non-null object
Past Due Grouping 57642 non-null object
Worst Performance 57642 non-null object
90+ Perf 57642 non-null int64
Bankruptcy Code 57642 non-null object
Bad Indicator 57642 non-null int64
RR Downgrade 57642 non-null object
Beacon Range 57642 non-null object
Product Grouping 57642 non-null object
Final Product Grouping 57642 non-null object
dtypes: float64(10), int64(8), object(15)
from sklearn.preprocessing import LabelEncoder
lb_make = LabelEncoder()
project["Bankruptcy Code"] = lb_make.fit_transform(project["Bankruptcy
Code"])
project[["Bankruptcy Code", "Bankruptcy Code Num"]].head(11)
TypeError Traceback (most recent call
last)
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in
_encode(values, uniques, encode)
104 try:
--> 105 res = _encode_python(values, uniques, encode)
106 except TypeError:
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in
_encode_python(values, uniques, encode)
58 if uniques is None:
---> 59 uniques = sorted(set(values))
60 uniques = np.array(uniques, dtype=values.dtype)
TypeError: '<' not supported between instances of 'str' and 'float'
During handling of the above exception, another exception occurred:
TypeError Traceback (most recent call
last)
<ipython-input-209-f7197bc53834> in <module>
2
3 lb_make = LabelEncoder()
----> 4 project["Bankruptcy Code"] =
lb_make.fit_transform(project["Bankruptcy Code"])
5 project[["Bankruptcy Code", "Bankruptcy Code Num"]].head(11)
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in
fit_transform(self, y)
234 """
235 y = column_or_1d(y, warn=True)
--> 236 self.classes_, y = _encode(y, encode=True)
237 return y
238
~\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py in
_encode(values, uniques, encode)
105 res = _encode_python(values, uniques, encode)
106 except TypeError:
--> 107 raise TypeError("argument must be a string or number")
108 return res
109 else:
TypeError: argument must be a string or number