首页 > 解决方案 > 在数据框中返回为 set() 的空集,如何返回为 None 或 NULL?

问题描述

我有一个函数,我将一个列作为一个空集启动,因为我想在循环列表时只向它附加唯一值。

但是,当没有值添加到集合中时,它将像set()在数据框中一样返回,而我希望它返回NULLor 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 的情况下仅将唯一值附加到列表中,请随时告诉我!

标签: pythonpandas

解决方案


推荐阅读