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)
但速度很慢。
謝謝!