Python 如何获得熊猫群比中的行业损失率
我想使用pandas groupby()总结一个在行业级别上具有丢失率的数据帧 我的数据表如下所示: 类型包含不同的行业,好的坏的=0表示不良贷款,好的坏的=1表示良好贷款Python 如何获得熊猫群比中的行业损失率,python,pandas,dataframe,group-by,count,Python,Pandas,Dataframe,Group By,Count,我想使用pandas groupby()总结一个在行业级别上具有丢失率的数据帧 我的数据表如下所示: 类型包含不同的行业,好的坏的=0表示不良贷款,好的坏的=1表示良好贷款 type | good_bad food | 0 food | 0 food | 1 Retail | 1 Retail | 1 Retail | 1 Retail | 0 我想创建一个新列损失率,它根据每个行业的坏账发生率计算损失率,并除以行业总数
type | good_bad
food | 0
food | 0
food | 1
Retail | 1
Retail | 1
Retail | 1
Retail | 0
我想创建一个新列损失率,它根据每个行业的坏账发生率计算损失率,并除以行业总数:
type | good_bad | lost_rate | (calculation on how it works)
food | 0 | 0.667 | (2/3)
food | 0 | 0.667 | (2/3)
food | 1 | 0.667 | (2/3)
Retail | 1 | 0.25 | (1/4)
Retail | 1 | 0.25 | (1/4)
Retail | 1 | 0.25 | (1/4)
Retail | 0 | 0.25 | (1/4)
我可以分别得到分子和分母,但我不知道如何将它们组合在一起:
分子:df.loc[df['good\u bad']==0,'type'].value\u counts().reset\u index(name='counts')
分母:df['type'].值计数().重置索引()
我还尝试创建一个函数并应用于数据帧,但无法开始工作:
def industry_lost_rate(df):
count = df.loc[loan_data['good_bad']==0, 'type'].value_counts()
industry_sum = df['type'].value_counts()
rate = count / industry_sum
return pd.DataFrame({"count":count, "rate": rate})
df2 = df.groupby('type')['good_bad'].apply(industry_lost_rate(df)).reset_index()
有人能告诉我如何获得丢失率吗?提前谢谢 您可以尝试groupby
键入
列,并使用转换
计算各组中好_坏
列的平均值
df['lost_rate']=1-df.groupby('type')['good_bad'].transform('mean').round(3)
print(df)
type good_bad lost_rate
0 food 0 0.667
1 food 0 0.667
2 food 1 0.667
3 Retail 1 0.250
4 Retail 1 0.250
5 Retail 1 0.250
6 Retail 0 0.250