Gurus,我们正在寻找一种pythonic方法(python 2.7)将列中的分类值转换为二进制值到单个新列中。示例:在"Loan_status"列中,
Loan_Status
Charged Off
Default
Fully Paid
Current
Does not meet the credit policy. Status:1
Does not meet the credit policy. Status:0
我们尝试将"冲销"、"默认"设置为"0"、"全额支付"、"当前"设置为"1",并删除任何包含"不符合信用策略"的行。状态:1"和"不符合信用政策。状态:0"。
期望输出:
Loan_Status
0
0
1
1
有什么pythonic方法可以做到这一点吗? 熊猫get_dummies会生成多个列,所以它似乎不起作用。 谢谢!
让我们定义一个正类标签和负类标签的列表。
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)