DataFrameのテキストを含む列を1つのホットエンコードされた行列に変換しようとしています。これはしばらくの間うまく機能しましたが、私にはわからない理由で作業が中止されました。メッセージは: "TypeError: '>' str 'と' float 'のインスタンス間ではサポートされていません"私には、私はtekstデータのみを使用するのでナンセンスに思えます。私が小さなデータセットで実験を繰り返すと、LabelBinarizerはうまく動作し、望ましい出力を生成します。LabelBinarizerがNaNのために一貫して動作しない
X_trainデータフレームのサイズが4.6 GBであることに気付きました。私のマシンはわずか8 GBしかありません。私が知っておくべきいくつかのメモリ制限はありますか? int32とfloat32に変換する必要がありますすべての数値はかなり小さいですか?
以下のエラーを再現できます。しかし、これが十分な情報を提供するかどうかはわかりません。
from sklearn.preprocessing import LabelBinarizer
lb=LabelBinarizer()
s=['a','b','c','b','a']
df=pd.DataFrame (s)
df = pd.Series (s)
dd = X_train['state']
type(dd)
Out[9]: pandas.core.series.Series
type(df)
Out[10]: pandas.core.series.Series
lb.fit(dd)
Traceback (most recent call last):
File "<ipython-input-11-5ec245111e31>", line 1, in <module>
lb.fit(dd)
File "C:\packages\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py", line 296, in fit
self.y_type_ = type_of_target(y)
File "C:\packages\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", line 275, in type_of_target
if (len(np.unique(y)) > 2) or (y.ndim >= 2 and len(y[0]) > 1):
File "C:\packages\Anaconda3\lib\site-packages\numpy\lib\arraysetops.py", line 214, in unique
ar.sort()
TypeError: '>' not supported between instances of 'str' and 'float'
lb.fit(df)
Out[12]: LabelBinarizer(neg_label=0, pos_label=1, sparse_output=False)
df.value_counts()
Out[13]:
a 2
b 2
c 1
dtype: int64
dd.value_counts()
Out[14]:
MI 228601
CA 5020
TX 2420
FL 2237
IL 1310
SC 1304
OH 967
NY 673
MN 632
GA 535
NV 484
UT 477
PA 466
NJ 395
VA 385
NC 353
MD 349
AZ 329
ME 261
OK 248
AL 215
TN 207
WA 192
MA 182
IA 159
WI 159
OR 153
MO 151
CO 147
KY 146
IN 106
AR 82
LA 81
AK 79
UK 77
NB 77
MS 64
CT 60
DC 58
ON 51
DE 50
KS 37
RI 35
SD 33
ID 33
MT 28
NM 21
BC 17
WY 12
HI 10
NH 9
VT 7
VI 6
WV 6
PR 5
QC 5
QL 3
ND 2
BL 2
Name: state, dtype: int64
len(df)
Out[15]: 5
len(dd)
Out[16]: 250306
はい!それが原因でした。どうもありがとう。各値の型をテストするために私の列をスキャンし、浮動小数点数として解釈されたいくつかのNaNを気付きました。とても混乱するような。あなたがpandasシリーズのdtypeを尋ねるとき、それはあなたに横たわっているかもしれません。この発見を反映するようにタイトルを変更しました。 – Arnold
タイトルを変更していただきありがとうございます。私も過去に同じ問題に遭遇しました。同じ問題を抱えている人にはおそらく便利です。 – Keiku
このソリューションを共有して非常にうれしいです。エラーメッセージだけがより明確になっていれば、私には1日かかることはありませんでした。 – Arnold