fre*_*rtz 13 python string series pandas
任何人都可以看到为什么这不起作用?
它试图做; 如果列名包含文本'Andy',则创建一个名为Andy的列并将该行设置为1
df.loc[df['Name'].str.contains(['Andy']),'Andy']=1
Run Code Online (Sandbox Code Playgroud)
你必须删除列表,只需要字符串:
df.loc[df['Name'].str.contains('Andy'),'Andy'] = 1
Run Code Online (Sandbox Code Playgroud)
对于多个价值链|:
df.loc[df['Name'].str.contains('Andy|George'),'Andy'] = 1
Run Code Online (Sandbox Code Playgroud)
pd.Series.str.contains要求其pat参数为"字符序列或正则表达式",而不是列表.
只需使用布尔赋值并转换为int.这将设置不匹配的行0.例如:
# Name includes 'Andy'
df['Andy'] = df['Name'].str.contains('Andy').astype(int)
# Name includes 'Andy' or 'George'
df['Andy'] = df['Name'].str.contains('Andy|George').astype(int)
Run Code Online (Sandbox Code Playgroud)