代码之家  ›  专栏  ›  技术社区  ›  qshng

在dataframe中返回set()形式的空集,如何返回None或NULL?

  •  0
  • qshng  · 技术社区  · 6 年前

    我有一个函数,在这个函数中,我将列初始化为一个空集,因为在循环遍历一个列表时,我只想向它附加唯一的值。

    但是,当没有值添加到集合中时,它将作为 set() NULL None

    下面是一个虚拟示例:

    此外,此函数还设计为按列工作并传递给 df.apply(, axis=1) 在后一个过程中。

    row[val_col]='Apple;Banana;Dog'
    
    lookup_map = {'fruit':['Apple'],
    'animal':['Cat']}
    
    out_cols = ['fruit','animal']
    
    def assign_vals(row, val_col, out_cols, lookup_map):
      for out_col in out_cols:
            row[out_col] = set()
      vals = row[val_col].split(';')
    
      for val in vals:
          for out_col in out_cols:
                lookup_vals= lookup_map[out_col]
                for lookup_val in lookup_vals:
                    if val in lookup_val:
                        row[out_col].add(lookup_val)
    
     return ';'.join(row[out_col])
    

    这是一个人为的例子,我还没有调试它。不过,你只要了解一下我的功能就行了。如果有更好的方法只附加唯一值到一个列表而不使用set,请随时告诉我!

    0 回复  |  直到 6 年前