1
我是python和编程的一般新手。熊猫条件性返回值在另一列中的相应位置
我想弄清楚如何在熊猫不同列中的相应位置上返回一个逗号分隔值并将此输出存储在一个新列中。见下面
key_list = [cat, dog, pig]
A B
---------------------
1 cat
1, 2 dog, cat
1, 2, 3 pig, dog, cat
我的例子中,我希望有一个输出,如下所示:
A B cat_result dog_result pig_result
----------------------------------------------------------------
1 cat 1 NAN NAN
6, 2 dog, cat 2 6 NAN
8, 3, 1 pig, dog, cat 1 3 8
所以,我想能够检查按键的存在(A,B或C)在列B中,则如果存在,则返回列A中的值,该值位于该单元格中对应的逗号分隔值中。
到目前为止,我有这样的:
for key in key_list:
df["{}_result".format{key}] = df.apply(lambda _: int(key in _.B), axis=1)
这将为每个key_result一个新列,然后给予1如果该键为B中存在或0,如果没有。不知道该从哪里出发,或者这是否正确。任何帮助深表感谢。谢谢!
这真是太棒了,我真的很抱歉,但在简化问题时,我将键减少为单个字母,是否有适应整个短语的方法,例如, key_list = [猫,狗,猪]而不是key_list = [a,b,c]?我会更新以添加原文Q. – 0mm3
无论哪种方式工作。 – piRSquared
非常感谢,花时间! – 0mm3