gpt4 book ai didi

python - 对于 Pandas 数据框中的每一行,确定另一列中是否存在列值

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:36 27 4
gpt4 key购买 nike

我有一个像这样的 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 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_pred'中。请注意,“category_pred”可以包含多个值。

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

for i in df.index:
if df.category[i] in df.category_pred[i]:
df['count'][i] = 1

我正在寻找一种有效的方法来执行此操作。谢谢!

最佳答案

您可以使用DataFrame's apply方法。

df['count'] = df.apply(lambda x: 1 if x.category in x.category_pred else 0, axis = 1)

这将根据需要添加新列

关于python - 对于 Pandas 数据框中的每一行,确定另一列中是否存在列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618273/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com