0
完成以下任务的最佳方法是什么?pandas:检查列表数组中的成员资格,避免循环遍历列
在以下的数据帧,
df = DataFrame({'a':[20,21,99], 'b':[[1,2,3,4],[1,2,99],[1,2]], 'c':['x','y','z']})
我想检查哪些元素在列DF [ 'A']是包含在柱DF [ 'B']一些列表。如果有匹配我想在列DF [“C”]对应的元素,如果没有找到匹配0。
所以在我的例子,我想获得一个系列:
[0,0,'y'].
由于99是在列DF的唯一元件[“一”]包含在从柱DF [“b”]的列表,并且该列表对应于元件的“y”在列DF [“C”]
我试过了:
def match(item):
for ind, row in A.iterrows():
if item in row.b:
return row.c
return False
df['a'].apply(match)
但速度很慢。
谢谢!