使用.cut()对随机值进行分档,然后将分档放置在新的Pandas数据框列中

时间:2019-03-19 03:27:20

标签: python-3.x pandas for-loop bucket

能否完成功能并在下面进行循环?无法弄清楚如何对以下列进行装箱,然后1)将装箱后的值放入新列中,以及2)将这两个新列中的每一个都添加为前缀“ bin_”的.add_prefix()?无法弄清楚如何获取该函数以及for循环工作。

binner=list(range(0,6))
countofbins=len(binner)
df = pd.DataFrame(np.random.rand(20,7), columns=list('ABCDEFG'))
df['bin_A']=pd.cut(x=df['A'],bins=countofbins,labels=binner)

def calculate_bins(bincolumnname, oldcolumnname):
    for ind, column in enumerate(df.columns):
    df[bincolumnname] = pd.cut(x=df[oldcolumnname], bins=countofbins,labels=binner)
    return df[bincolumnname]

1 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,那么您将尝试为数据框中的每一列创建一个新列,其中包含每个单元格所在的箱。

"react": "^16.8.4",
"react-native": "^0.58.6"

输出:

binner=list(range(0,6))
df = pd.DataFrame(np.random.randint(low=1, high=5,size=(20,7)), columns=list('ABCDEFG'))
for idx, col in enumerate(df.columns):
    df['bin_{}'.format(col)]=pd.cut(x=df.loc[:, col],bins=binner)

您可以使用pandas.cut()中的 A B C D E F G bin_A bin_B bin_C bin_D bin_E bin_F bin_G 0 1 3 2 1 4 3 2 (0, 1] (2, 3] (1, 2] (0, 1] (3, 4] (2, 3] (1, 2] 1 1 1 3 2 4 4 4 (0, 1] (0, 1] (2, 3] (1, 2] (3, 4] (3, 4] (3, 4] 2 1 2 2 3 1 2 2 (0, 1] (1, 2] (1, 2] (2, 3] (0, 1] (1, 2] (1, 2] 3 1 1 1 2 2 1 3 (0, 1] (0, 1] (0, 1] (1, 2] (1, 2] (0, 1] (2, 3] 4 1 3 1 1 4 4 4 (0, 1] (2, 3] (0, 1] (0, 1] (3, 4] (3, 4] (3, 4] 5 4 3 3 1 1 3 1 (3, 4] (2, 3] (2, 3] (0, 1] (0, 1] (2, 3] (0, 1] 6 1 2 1 4 2 2 3 (0, 1] (1, 2] (0, 1] (3, 4] (1, 2] (1, 2] (2, 3] 7 4 2 2 1 3 2 3 (3, 4] (1, 2] (1, 2] (0, 1] (2, 3] (1, 2] (2, 3] 8 1 1 4 1 1 2 1 (0, 1] (0, 1] (3, 4] (0, 1] (0, 1] (1, 2] (0, 1] 9 3 1 4 1 3 2 4 (2, 3] (0, 1] (3, 4] (0, 1] (2, 3] (1, 2] (3, 4] 10 2 2 2 3 3 4 4 (1, 2] (1, 2] (1, 2] (2, 3] (2, 3] (3, 4] (3, 4] 11 1 2 1 1 4 3 3 (0, 1] (1, 2] (0, 1] (0, 1] (3, 4] (2, 3] (2, 3] 12 4 1 1 1 4 1 1 (3, 4] (0, 1] (0, 1] (0, 1] (3, 4] (0, 1] (0, 1] 13 1 2 4 4 2 4 3 (0, 1] (1, 2] (3, 4] (3, 4] (1, 2] (3, 4] (2, 3] 14 3 3 4 4 2 4 2 (2, 3] (2, 3] (3, 4] (3, 4] (1, 2] (3, 4] (1, 2] 15 1 4 1 3 2 2 3 (0, 1] (3, 4] (0, 1] (2, 3] (1, 2] (1, 2] (2, 3] 16 4 2 2 3 2 1 2 (3, 4] (1, 2] (1, 2] (2, 3] (1, 2] (0, 1] (1, 2] 17 1 2 3 4 3 2 3 (0, 1] (1, 2] (2, 3] (3, 4] (2, 3] (1, 2] (2, 3] 18 2 3 3 2 3 3 3 (1, 2] (2, 3] (2, 3] (1, 2] (2, 3] (2, 3] (2, 3] 19 2 4 1 1 3 2 4 (1, 2] (3, 4] (0, 1] (0, 1] (2, 3] (1, 2] (3, 4] 自变量更改垃圾箱的标签