在Pandas Data-frame中使用掩码的字符串值创建一个新列

时间:2019-01-15 10:08:37

标签: python pandas

我正尝试在我的数据框中添加一个新列,以指定“创建者”列中的用户是否是团队的一部分(保存在单独的列表中)。

原始数据框(df)

                 URL      text  created_by
id
1    www.pandora.com   Pandora  John
2     m.jcpenney.com     other  Steve
3    www.youtube.com   You-tube Rob
4   www.facebook.com  Facebook  David
Team_Names = ['John','Steve','Rob','Euan']

我希望最终的数据帧包含一个具有True或False值的新列,具体取决于“ created by”值是否在“ Tam_Names”列表中

Team_Mask = df['Created by'].isin(Team_Names)
df['In_Team'] = df.[Team_Mask]

我在代码的最后一行遇到错误。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

将掩码分配给新列:

Team_Names = ['John','Steve','Rob','Euan']
df['In_Team'] = df['created_by'].isin(Team_Names)
print (df)
                URL      text created_by  In_Team
1   www.pandora.com   Pandora       John     True
2    m.jcpenney.com     other      Steve     True
3   www.youtube.com  You-tube        Rob     True
4  www.facebook.com  Facebook      David    False

或使用assign

df = df.assign(In_Team = df['created_by'].isin(Team_Names))