我有一个函数,在这个函数中,我将列初始化为一个空集,因为在循环遍历一个列表时,我只想向它附加唯一的值。
但是,当没有值添加到集合中时,它将作为
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,请随时告诉我!