将数据框列的条目与列表匹配并根据匹配创建新列

时间:2021-01-07 09:23:13

标签: python pandas list dataframe

我正在寻找一种pythonic方法来处理这个数据框列和列表匹配问题:

这是我的数据框:

enter image description here

现在,我有一个 roll_no 列表:

     roll_no_matching = [3,5]

我想在此列表和 B 列(又名 roll_no)之间进行匹配。并插入一个新列,0 表示不匹配,1 表示匹配。例如结果数据框将如下所示: enter image description here

我知道如何根据任何索引列匹配两个数据帧,并可能合并两个数据帧中的一些列,但是,我不确定如何创建新列。非常感谢这里的任何指导。

1 个答案:

答案 0 :(得分:0)

使用 Series.isin 进行测试成员资格,通过 Series.astype 将掩码转换为整数:

df['Merit_list'] = df['roll No.'].isin(roll_no_matching).astype(int)

Series.view

df['Merit_list'] = df['roll No.'].isin(roll_no_matching).view('i1')

或通过numpy.where

df['Merit_list'] = np.where(df['roll No.'].isin(roll_no_matching), 1, 0)