Python 对于dataframe中的每一行,确定另一列中是否存在列值

Python 对于dataframe中的每一行,确定另一列中是否存在列值,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示: df = pd.DataFrame({'category' : ['A', 'B', 'C', 'A'], 'category_pred' : [['A'], ['B','D'], ['A','B','C'], ['D']]}) print(df) category category_pred 0 A [A] 1 B [B, D] 2 C [A, B, C] 3

我有一个熊猫数据框,如下所示:

df = pd.DataFrame({'category' : ['A', 'B', 'C', 'A'], 'category_pred' : [['A'], ['B','D'], ['A','B','C'], ['D']]})
print(df)

  category category_pred
0        A           [A]
1        B        [B, D]
2        C     [A, B, C]
3        A           [D]
  category category_pred  count
0        A           [A]      1
1        B        [B, D]      1
2        C     [A, B, C]      1
3        A           [D]      0
我希望有这样的输出:

df = pd.DataFrame({'category' : ['A', 'B', 'C', 'A'], 'category_pred' : [['A'], ['B','D'], ['A','B','C'], ['D']]})
print(df)

  category category_pred
0        A           [A]
1        B        [B, D]
2        C     [A, B, C]
3        A           [D]
  category category_pred  count
0        A           [A]      1
1        B        [B, D]      1
2        C     [A, B, C]      1
3        A           [D]      0
也就是说,对于每一行,确定“category”中的值是否出现在“category\u pred”中。请注意,“category_pred”可以包含多个值

我可以做一个像这样的for循环,但它真的很慢

for i in df.index:
    if df.category[i] in df.category_pred[i]:
        df['count'][i] = 1
我正在寻找一种有效的方法来做这个手术。谢谢

你可以利用这个方法

这将根据需要添加新列

df['count']=df.apply(如果x['category\u pred']中的x['category']为0,则lambda x:1),可能需要axis=1,我忘记了