我有一个函数可以将列初始化为空集,因为我想在遍历列表时仅向其添加唯一值。
但是,当没有值添加到集合中时,它将在数据帧中以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的情况下将唯一值附加到列表中,请随时告诉我!