在python中创建函数以对数据进行装箱

问题描述 投票:-1回答:1

我有1000行2列的数据。一列包含CustomerID,另一列包含值。我需要创建一个函数来将值分为5组。我需要使用的分箱过程如下。所有值= 1,将得到一个分数= 1。对于剩余的值,将取其平均值,而低于平均值的值将被赋予得分= 2。此外,对于其余值(未计分),将采用其平均值,低于平均值的值将被赋予分数= 3。继续

python function binning
1个回答
0
投票

假设未计算5个箱得分之后,其余项目的得分将为0。

import pandas as pd
import numpy as np

cid = np.arange(1,1001)
score = np.zeros(1000, dtype=int)
values = np.random.randint(0,100,1000)

df = pd.DataFrame({'CID':cid, 'Values':values, 'Score':score})

df.loc[df['Values'] == 1, 'Score'] = 1

for i in range(2,6):
    mean = df.loc[df['Score'] ==0, 'Values'].mean()
    df.loc[(df['Score'] == 0) & (df['Values']<mean), 'Score'] = i

print(df)
© www.soinside.com 2019 - 2024. All rights reserved.