将特定的列值更改为因子或水平以进行sklearn建模

时间:2019-05-15 01:28:00

标签: python-3.x pandas data-science

我正在清理信用卡数据以进行风险建模。

我试图用python中的级别更改信用卡列,但是没有用。可以从以下链接下载数据。 Data

我想将checking_balancesaving_balanceemployment duration的值更改为0、1、2、3 ...等级别。

以下代码显示了我对saving_balance列的试用。

credit['savings_balance'].unique()
credit["saving_balance"] = credit["saving_balance"].map(
                           {"unknown":0,"< 100 DM": 1,
                            "< 100 DM": 2, "100 - 500 DM":3,
                            "500 -1000 DM": 4,"> 1000 DM": 5"})

弹出以下错误消息。

File "<ipython-input-19-b70881164cf7>", line 3
credit["saving_balance"] = credit["saving_balance"].map(...)

^
SyntaxError: EOL while scanning string literal

1 个答案:

答案 0 :(得分:1)

以防您想使用sklearn。看看LabelEncoder

代码

from sklearn.preprocessing import LabelEncoder
data = np.array(["unknown", "unknown", "< 100 DM"])

# Label Encoder
label = LabelEncoder()
label.fit_transform(data)

# Output
array([1, 1, 0])
# Inverse transform
label.inverse_transform(np.array([0, 0, 1]))

# Output
array(['< 100 DM', '< 100 DM', 'unknown'], dtype='<U8')