Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据列是否包含给定字符串设置标志列_Python_String_Pandas_Series - Fatal编程技术网

Python 根据列是否包含给定字符串设置标志列

Python 根据列是否包含给定字符串设置标志列,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 其

有人知道为什么这不起作用吗

它试图去做;如果列名包含文本“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
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方法