检查pandas数据帧中的列值是否存在于序列中

2024-10-03 19:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Pandas数据帧,如下所示:

>>>df
  Application ID     Name 
0          12         Sally   
1          32         Bill   
2          35         Dave   
3          11         Positivus   
4          09         Milan   

一个像这样的系列

^{pr2}$

我要循环数据框名称并创建一个列,如果名称在skype_列表中,则为1;如果不在列表中,则为0。结果应该如下所示:

>>>df
      Application ID     Name         skype
    0          12         Sally        1
    1          32         Bill         0
    2          35         Dave         0
    3          11         Positivus    1
    4          09         Milan        1

现在我正试图建立一个这样的循环:

for x in df.Name:
    if x in skype_list:
        df['skype'].append(1)
    else:
        df['skype'].append(0)

Tags: 数据namein名称iddf列表application
2条回答

或者您可以使用isin

df['skype'] = df.Name.isin(skype_list).astype(int)

df    
# Application   ID       Name   skype
#0          0   12      Sally       1
#1          1   32       Bill       0
#2          2   35       Dave       0
#3          3   11  Positivus       1
#4          4   9       Milan       1

一个愚蠢的解决方案是:

skype_names = set(skype_list.values)
df['skype'] = df.Name.apply(lambda x: x in skype_names).astype(int)

相关问题 更多 >