【发布时间】:2020-11-24 21:37:33
【问题描述】:
我有一个数据集,其中有一列包含两个不同的文本(PAIDOFF、COLLECTION),我想将其转换为二进制值,所以我尝试了以下操作:
y = df['loan_status'].values
y[0:5]
输出:
array(['PAIDOFF', 'PAIDOFF', 'PAIDOFF', 'PAIDOFF', 'PAIDOFF'],
dtype=object)
定义目标列后,尝试将其转换为二进制值:
#Convert y to binary values
le_loan_status=preprocessing.LabelEncoder()
le_loan_status.fit(['PAIDOFF','COLLECTION'])
y[:,0]= le_loan_status.transform(y[:,0])
输出:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-10-917e44b54b88> in <module>
2 le_loan_status=preprocessing.LabelEncoder()
3 le_loan_status.fit(['PAIDOFF','COLLECTION'])
----> 4 y[:,0]= le_loan_status.transform(y[:,0])
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
你有什么办法解决这个问题吗?
【问题讨论】:
-
pd.get_dummies(df["loan_status"],drop_first=True) ?
-
就像一个魅力。感谢您的快速帮助
-
我在另一个项目中尝试过,但这次我得到了:'IndexError: only integers, slices''(
:), ellipsis (...), numpy.newaxis (None) 和整数或布尔数组是有效的''indices' -
在主要问题上显示您的代码截图
-
我的错,忘记更改数组名称。再次感谢。如果您将其添加为解决方案,我可以批准它
标签: python classification data-science