运行时报错
来源:5-13 HR表的特征预处理-1

声声慢_1
2018-09-18
def hr_preprocessing(sl=False,le=False,npr=False):
df=pd.read_csv("E:/workplace/data/HR.csv")
#1.得到标注
label=df["left"]
df=df.drop("left",axis=1)
#2.清洗数据
#去掉空值和异常值
df=df.dropna(subset=["satisfaction_level","last_evaluation"])
df=df[df["satisfaction_level"]<=1][df["salary"]!="nme"]
#3.特征选择
#4.特征处理
scaler_lst=[sl,le,npr]
column_lst=["satisfaction_level","last_evaluation","number_project"]
for i in range(len(scaler_lst)):
if not scaler_lst[i]:
df[column_lst]=\
MinMaxScaler().fit_transform(df[column_lst[i]].values.reshape(-1,1)).reshape(1,-1)[0]
else:
df[column_lst]=\
StandardScaler().fit_transform(df[column_lst[i]].values.reshape(-1,1)).reshape(1,-1)[0]
return df
def main():
print(hr_preprocessing(sl=True,le=True,npr=True))
if __name__=="__main__":
main()
运行时报错
Traceback (most recent call last):
File "<ipython-input-19-817e55114f04>", line 1, in <module>
runfile('E:/workplace/code/main.py', wdir='E:/workplace/code')
File "D:\Program Files (x86)\anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "D:\Program Files (x86)\anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "E:/workplace/code/main.py", line 46, in <module>
main()
File "E:/workplace/code/main.py", line 44, in main
print(hr_preprocessing(sl=True,le=True,npr=True))
File "E:/workplace/code/main.py", line 41, in hr_preprocessing
StandardScaler().fit_transform(df[column_lst[i]].values.reshape(-1,1)).reshape(1,-1)[0]
File "D:\Program Files (x86)\anaconda\lib\site-packages\pandas\core\frame.py", line 2352, in __setitem__
self._setitem_array(key, value)
File "D:\Program Files (x86)\anaconda\lib\site-packages\pandas\core\frame.py", line 2382, in _setitem_array
self.ix._setitem_with_indexer((slice(None), indexer), value)
File "D:\Program Files (x86)\anaconda\lib\site-packages\pandas\core\indexing.py", line 527, in _setitem_with_indexer
raise ValueError('Must have equal len keys and value '
ValueError: Must have equal len keys and value when setting with an iterable
请问下是哪里出了问题?谢谢
写回答
1回答
-
同学你好,应该是数据数量和label数量不一致造成的,可以把drop label放在dropna以后进行,试一把。
012018-09-20