Python 装箱任务:我有一个频率列表,我需要将其放入箱子中,面对错误

Python 装箱任务:我有一个频率列表,我需要将其放入箱子中,面对错误,python,list,fft,binning,Python,List,Fft,Binning,我有df['freq'],这是存储为['0.0','0.3','0.9]的数字列表。 我的任务是将它们分为30个箱子(从0.0、0.1、0.2……到3.0) 我使用了ravel函数将其展平 创建了一个新的\u列表,用于将这些字符串存储为float def binning_function(col,cut_points,labels=None): minval = 0.0 maxval = 3.0 break_points = [minval] + cut_points + [maxva

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

  • 我使用了ravel函数将其展平

  • 创建了一个新的\u列表,用于将这些字符串存储为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
    
  • 请参阅此代码段:

    错误是


    “您将附加列表x元素,而不是每个值。因此,程序正在比较一个列表和一个不允许的数字。因此,通过修改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)
    

    您使用的位置在哪里请避免截图,而是复制/粘贴您的代码。pd.cut()需要1d数组,例如,
    new\u list
    不是1d数组,这可能会导致问题,尽管没有适当的示例很难判断。看:是的!感谢这项工作,面对另一个问题“垃圾箱标签必须比垃圾箱边缘的数量少一个”,现在解决这个问题。是的!谢谢,成功了!我已经接受了这个答案!