大きなパンダのデータフレームにカテゴリデータ("Yes"
と)を含むいくつかの列をエンコードしようとしています。完全なデータフレームには400以上のカラムが含まれていますので、必要なすべてのカラムを1つずつエンコードせずにエンコードする方法を探します。私はScikit-LabelEncoder
を使用して、カテゴリデータをエンコードします。Sklearnラベル複数の列をエンコードするpandas dataframe
データフレームの最初の部分はエンコードする必要はありませんが、分割しないで直接データを含む目的の列をすべてエンコードし、データフレームを連結する方法を探しています。
私の質問を示すために、私はまずデータフレームの小さな部分でそれを解決しようとしました。しかし、データがフィットし変換された最後の部分にこだわって、ValueError: bad input shape (4,3)
を得る。コード私が走ったよう:
# Create a simple dataframe resembling large dataframe
data = pd.DataFrame({'A': [1, 2, 3, 4],
'B': ["Yes", "No", "Yes", "Yes"],
'C': ["Yes", "No", "No", "Yes"],
'D': ["No", "Yes", "No", "Yes"]})
# Import required module
from sklearn.preprocessing import LabelEncoder
# Create an object of the label encoder class
labelencoder = LabelEncoder()
# Apply labelencoder object on columns
labelencoder.fit_transform(data.ix[:, 1:]) # First column does not need to be encoded
を完全なエラーレポート:
labelencoder.fit_transform(data.ix[:, 1:])
Traceback (most recent call last):
File "<ipython-input-47-b4986a719976>", line 1, in <module>
labelencoder.fit_transform(data.ix[:, 1:])
File "C:\Anaconda\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py", line 129, in fit_transform
y = column_or_1d(y, warn=True)
File "C:\Anaconda\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 562, in column_or_1d
raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape (4, 3)
誰もがこれを行う方法を知っていますか?
ラベルエンコーダは、単一の列をサポートしています。列を反復してエンコードする必要があります。 –
ありがとう!私はこれを見て、投稿にフォローアップを書いてください – HelloBlob