Python 3.x 根据另一列的条件替换列的内容

Python 3.x 根据另一列的条件替换列的内容,python-3.x,pandas,Python 3.x,Pandas,我有一个熊猫数据框。一列有字符串变量,另一列有1和0。根据字符串列的每个值出现的百分比阈值1,我想用1或0替换该值 'train\u data'数据框的两列是“问题”和“客户争议?” 发行 账单 付款/收款、汇款 信用报告信息不正确 账单 交易问题 贷款修改、收款、取消抵押品赎回权 贷款服务、付款、托管账户 贷款修改、收款、取消抵押品赎回权 信用卡保护/债务保护 消费者争议? 不 不 不 不 不 不 不 对 没有 我的代码: b = pd.crosstab(train_data['Issue']

我有一个熊猫数据框。一列有字符串变量,另一列有1和0。根据字符串列的每个值出现的百分比阈值1,我想用1或0替换该值

'train\u data'
数据框的两列是“问题”和“客户争议?”

发行

账单

付款/收款、汇款

信用报告信息不正确

账单

交易问题

贷款修改、收款、取消抵押品赎回权

贷款服务、付款、托管账户

贷款修改、收款、取消抵押品赎回权

信用卡保护/债务保护

消费者争议? 不 不 不 不 不 不 不 对 没有

我的代码:

b = pd.crosstab(train_data['Issue'], train_data['Consumer disputed?']).apply(lambda r: r/r.sum(), axis=1)

b['Issue_max'] = np.where(b[1]>=0.2, 1, 0)

train_data = train_data.merge(b, on='Issue', how='left')
然后删除在列_数据中合并的不需要的b列

for x in [1,0, 'Issue']:
    del train_data[x]
现在代码看起来很混乱。有人有更简单的代码吗?

您可以使用它来避免合并操作(以及不需要的列):

最后的
.astype(int)
是一种将布尔值转换为
1
0
的简单方法,可用于避免合并操作(以及不需要的列):


.astype(int)
最后是一种将布尔值转换为
1
0

的简单方法。您能提供一点数据片段吗?您能提供一点数据片段吗?
train_data['Issue_max'] = train_data.groupby('Issue')['Consumer disputed?'] \
                                    .transform(lambda g: (g.sum() / len(g)) >= 0.2) \
                                    .astype(int)