【问题标题】:irregular binning with regards to the sum of a column关于列总和的不规则分箱
【发布时间】:2016-06-27 14:26:44
【问题描述】:

我想根据另一列的总和在 pandas 中分箱数据框。

我有以下数据框:

time    variable    frequency
2           7         7
3           12        2
4           13        3
6           15        4
6           18        4
6           3         1
10          21        2
11          4         5
13          6         5
15          17        6
17          5         4

我想对数据进行分箱,使每组包含的最小总频率为 10,并输出平均时间以及总变量和总频率。

avg time    total variable  total frequency
3                 32             12
7                 57             11
12                10             10
16                22             10

任何帮助将不胜感激

【问题讨论】:

    标签: python pandas dataframe binning


    【解决方案1】:

    一点点蛮力会让你走得很远。

    import numpy as np
    
    data = ((2, 7, 7),
            (3, 12, 2),
            (4, 13, 3),
            (6, 15, 4),
            (6, 18, 4),
            (6, 3, 1),
            (10, 21, 2),
            (11, 4, 5),
            (13, 6, 5),
            (15, 17, 6),
            (17, 5, 4))
    
    freq = [data[i][2] for i in range(len(data))]
    variable = [data[i][1] for i in range(len(data))]
    time = [data[i][0] for i in range(len(data))]
    
    freqcounter = 0
    timecounter = 0
    variablecounter = 0
    counter = 0
    
    freqlist = []
    timelist = []
    variablelist = []
    
    for k in range(len(data)):
        freqcounter += freq[k]
        timecounter += time[k]
        variablecounter += variable[k]
        counter += 1
        if freqcounter >= 10:
            freqlist.append(freqcounter)
            timelist.append(timecounter/counter)
            variablelist.append(variablecounter)
            freqcounter = 0
            timecounter = 0
            variablecounter = 0
            counter = 0
    
    print(timelist)
    print(variablelist)        
    print(freqlist)
    

    【讨论】:

    • 快速跟进,如果我从 csv 文件导入初始数据,我将如何编辑它来工作
    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多