我正在寻找一种pythonic方法来处理这个数据框列和列表匹配问题:
这是我的数据框:
现在,我有一个 roll_no 列表:
roll_no_matching = [3,5]
我想在此列表和 B 列(又名 roll_no)之间进行匹配。并插入一个新列,0 表示不匹配,1 表示匹配。例如结果数据框将如下所示:
我知道如何根据任何索引列匹配两个数据帧,并可能合并两个数据帧中的一些列,但是,我不确定如何创建新列。非常感谢这里的任何指导。
答案 0 :(得分:0)
使用 Series.isin
进行测试成员资格,通过 Series.astype
将掩码转换为整数:
df['Merit_list'] = df['roll No.'].isin(roll_no_matching).astype(int)
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)