【问题标题】:How to add padding in a dataset to fill up to 50 items in a list and replace NaN with 0?如何在数据集中添加填充以填充列表中最多 50 个项目并将 NaN 替换为 0?
【发布时间】:2021-04-09 12:33:41
【问题描述】:

我的数据集中有以下编码文本列:

[182, 4]
[14, 2, 31, 42, 72]
[362, 685, 2, 399, 21, 16, 684, 682, 35, 7, 12]

不知何故,我希望这一列每行最多填充 50 个项目,假设没有一行大于 50 个项目。在没有数值的地方,我希望放置一个 0。

在示例中,想要的结果是:

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,182, 4]
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14, 2, 31, 42, 72]
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,362, 685, 2, 399, 21, 16, 684, 682, 35, 7, 12]

【问题讨论】:

    标签: python list dataframe scikit-learn padding


    【解决方案1】:

    试试这个:

    >>> y=[182,4]
    >>> ([0]*(50-len(y))+y)
    

    【讨论】:

      【解决方案2】:

      假设您已经从字符串列中解析了列表,一个非常基本的方法可能如下:

      a = [182, 4]
      b = [182, 4, 'q']
      
      
      def check_numeric(element):
          # assuming only integers are valid numeric values
          try:
              element = int(element)
          except ValueError:
              element = 0
          return element
      
      
      def replace_nonnumeric(your_list):
          return [check_numeric(element) for element in your_list]
      
      
      # change the desired length to your needs (change 15 to 50)
      def fill_zeros(your_list, desired_length=15):
          prepend = (desired_length - len(your_list)) * [0]
          result = prepend + your_list
          return result
      
      
      aa = replace_nonnumeric(a)
      print(fill_zeros(aa))
      
      bb = replace_nonnumeric(b)
      print(fill_zeros(bb))
      

      此代码输出:

      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 4]    # <-- aa
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 4, 0]    # <-- bb
      

      但是,我建议将此代码用作基础并根据您的需要采用它。 尤其是在解析“list as strings”列中的大量条目时,编写一个解析函数并通过 pandas 的.apply() 调用它会是一个不错的方法。

      【讨论】:

        猜你喜欢
        • 2022-11-23
        • 1970-01-01
        • 2013-10-07
        • 1970-01-01
        • 2021-01-20
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 2013-02-24
        相关资源
        最近更新 更多