我正在尝试使用MinMaxScaler缩放数据。我正在使用sklearn。当我尝试调整数据框并进行变形时,出现以下错误消息。我会发布一些代码,但与错误消息的前几行相同。我还会发布一些示例数据,但是我的数据框有大约100万条记录和700列。有人知道这个问题可能是什么吗?
Error:
171 scaler = MinMaxScaler()
--> 172 s_df[list_cont]=scaler.fit_transform(s_df[list_cont])
173
174 return s_df
/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/frame.py in __setitem__(self, key, value)
3368 else:
3369 # set column
-> 3370 self._set_item(key, value)
3371
3372 def _setitem_slice(self, key, value):
/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/frame.py in _set_item(self, key, value)
3443
3444 self._ensure_valid_index(value)
-> 3445 value = self._sanitize_column(key, value)
3446 NDFrame._set_item(self, key, value)
3447
/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/frame.py in _sanitize_column(self, key, value, broadcast)
3659
3660 # broadcast across multiple columns if necessary
-> 3661 if broadcast and key in self.columns and value.ndim == 1:
3662 if (not self.columns.is_unique or
3663 isinstance(self.columns, MultiIndex)):
/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/indexes/base.py in __contains__(self, key)
3918 @Appender(_index_shared_docs['contains'] % _index_doc_kwargs)
3919 def __contains__(self, key):
-> 3920 hash(key)
3921 try:
3922 return key in self._engine
TypeError: unhashable type: 'set'
答案 0 :(得分:0)
与sklearn.preprocessor.MinMaxScaler
无关。
如您所见,所有错误消息均来自pandas
,而不是sklearn
。
在s_df[list_cont]=scaler.fit_transform(s_df[list_cont])
行中,
list_cont
包含一个set
,因此pandas
抱怨它无法选择列。