Python 根据列是否包含给定字符串设置标志列
有人知道为什么这不起作用吗 它试图去做;如果列名包含文本“Andy”,则创建一个名为Andy的列,并将该行设置为1Python 根据列是否包含给定字符串设置标志列,python,string,pandas,series,Python,String,Pandas,Series,有人知道为什么这不起作用吗 它试图去做;如果列名包含文本“Andy”,则创建一个名为Andy的列,并将该行设置为1 df.loc[df['Name'].str.contains(['Andy']),'Andy']=1 您必须删除列表,只需字符串: df.loc[df['Name'].str.contains('Andy'),'Andy'] = 1 对于通过|链接的多个值: df.loc[df['Name'].str.contains('Andy|Andrew'),'Andy'] = 1 其
df.loc[df['Name'].str.contains(['Andy']),'Andy']=1
您必须删除列表,只需字符串:
df.loc[df['Name'].str.contains('Andy'),'Andy'] = 1
对于通过|
链接的多个值:
df.loc[df['Name'].str.contains('Andy|Andrew'),'Andy'] = 1
其pat
参数需要“字符序列或正则表达式”,而不是列表
只需使用布尔赋值并转换为int
。这将把不匹配的行设置为0
。例如:
# Name includes 'Andy'
df['Andy'] = df['Name'].str.contains('Andy').astype(int)
# Name includes 'Andy' or 'Andrew'
df['Andy'] = df['Name'].str.contains('Andy|Andrew').astype(int)
如果你打算为其他名字这样做,那么考虑GET-BuMMIES方法