输入并赋值

2024-06-06 00:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含许多变量的记分卡,我正在尝试使用python计算它的分数

这是我的记分卡寻找一个变量的方式:

Bins      score    
missing     2
[-Inf,20)   2
[20,40)     0
[40,140)   -1
[140, Inf) -2

以下是我的数据如何查找该变量:

ID_num Quick_Ratio
273N    61.53
280G    34.39
119D    0.00
080R    168.91
177K    53.97
204N    110.80
1902R   0.00
2035H   NaN
035G    58.74
3479Z   182.13

这就是我现在正在做的:

#bin the columns first
cut_labels = ['[-Inf,20)', '[20,40)', '[40,140)', '[140,inf)']
cut_bins = [-np.inf,20, 40, 140, np.inf]

df['quick_ratio_bin']= pd.cut(df['Quick_Ratio'], bins=cut_bins, labels=cut_labels, include_lowest=True)
df['quick_ratio_bin']=(df['quick_ratio_bin'].cat.add_categories('missing').fillna('missing'))


df.loc[df['quick_ratio_bin'] == 'missing', 'quick_ratio_s'] = 2
df.loc[df['quick_ratio_bin'] == '[-Inf,20)', 'quick_ratio_s'] = 2
df.loc[df['quick_ratio_bin'] == '[20,40)', 'quick_ratio_s'] = 0
df.loc[df['quick_ratio_bin'] == '[40,140)', 'quick_ratio_s'] = -1
df.loc[df['quick_ratio_bin'] == '[140,inf)', 'quick_ratio_s'] = -2

有更好的方法吗


Tags: dflabelsbinnpquicklocinfcut
1条回答
网友
1楼 · 发布于 2024-06-06 00:25:41
cut_bins = [-np.inf,20, 40, 140, np.inf]
score_labels = [2,0,-1,-2]
m1['quick_ratio_s']= pd.cut(m1['Quick_Ratio'], 
                            bins=cut_bins, 
                            labels=score_labels).astype(float).replace(np.nan,2)

相关问题 更多 >