分箱任务:我有一个频率列表,我需要将其放入分箱中,但会遇到错误

Binning task: I have a list of frequencies which I need to put in bins, facing errors

我有 df['freq'],这是一个存储为 ['0.0','0.3','0.9] 的数字列表。 我的任务是将它们分为 30 个箱子(来自 0.0, 0.1,0.2...... till 3.0)

  1. 我已经用ravel函数压平了

  2. 制作了一个 new_list 用于将这些字符串存储为 float

     def binning_function(col,cut_points,labels=None):
     minval = 0.0
     maxval = 3.0
     break_points = [minval] + cut_points + [maxval]
     print(break_points)
     if not labels:
         labels = range(len(cut_points) + 1)
    
     colbin = pd.cut(col,bins=break_points, labels=labels,include_lowest = True ) 
    
     return colbin
    

请参考这段代码:

错误是

'<' not supported between instances of 'float' and 'list'

您正在附加列表 x_elem 而不是每个值。结果,程序正在比较一个列表和一个不允许的数字。因此,通过修改 for 循环来追加每个值。

for x_elem in range(len(flat)):
    x_elem = df_ft['freq'].iloc[_].strip("[]").split(", ")
    x_elem = list2float(x_elem)
    for elem in x_elem:
        new_list.append(elem)