1、目的:
10000个样本有4个指标,按照逾期金额分10类,确保每类别逾期金额均衡。
2、数据:
3、思路:
将10000个样本按照逾期金额排序,
等距分箱为2500个类别
增加一列随机数
根据类别和随机数升序排列
增加一列赋值
按照分类的逾期金额求随机数
以下为10000个样本有4个指标,按照逾期金额分10类的代码逻辑。
4、代码实现
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas import Series,DataFrame as df
import random
#1)获取数据
file_data= pd.read_csv(“D:\data\paixu.csv”)
file_data.shape
file_data.head()
#1)逾期金额升序排序
file_data1=file_data.sort_values(by=[‘yqje’],ascending=[True])
#2)等距分箱形成aa列
file_data1[‘aa’]=pd.cut(file_data1.yqje,2500,labels=range(0,2500))
#3)赋值一列bb为随机数
random_nums=np.random.randint(0,10000,size=10000)
file_data1[‘bb’]=random_nums
#4)根据aa 和bb列排序
file_data1=file_data1.sort_values(by=[‘aa’,‘bb’],ascending=[True,False])
#5)按照排序规则赋值1 2 3 4
values=[1,2,3,4,5,6,7,8,9,10]
new_col = [values[i % len(values)] for i in range(len(file_data1))]
file_data1[‘cc’]=new_col
#6)结论、
group_mean=file_data1.groupby(‘cc’)[‘yqje’].mean()