Gurus,我们正在寻找一种pythonic方式(python 2.7),将列中的分类值转换为二进制值为一个新列。示例:在“Loan_status”列中,
i g h f(s)
我们正试图将“Charged Off”,“Default”变为“0”,“Full Paid”,“Current”变为“1”,并删除任何包含“不符合信用政策的行。状态: 1“和”不符合信用政策。状态:0“。
期望的输出:
Loan_Status
Charged Off
Default
Fully Paid
Current
Does not meet the credit policy. Status:1
Does not meet the credit policy. Status:0
有没有pythonic方法呢? Pandas get_dummies将生成多个列,因此它似乎不起作用。谢谢!
答案 0 :(得分:2)
让我们定义正面和负面类别标签的列表。
positive = ['Fully Paid', 'Current']
negative = ['Charged Off', 'Default']
首先,过滤对您的模型无效的行的数据框。我们可以使用isin
仅过滤
filtered_df = df[df['Loan_Status'].isin(positive + negative)].copy()
其次,为正面标签创建一个新列。如果需要0
或1
,我们可以将布尔结果转换为int
类型。
filtered_df['Loan_Status'] = filtered_df['Loan_Status'].isin(positive).astype(int)