根据另一列中存在的值添加一列

时间:2021-06-01 14:37:13

标签: python pandas dataframe

我有一个数据框:

<头>
id 价值
0 自动
1 手册
2 自动
3 手册
4 手册

我想根据第二列中存在的值添加另一列:

<头>
id 价值 旗帜
0 自动
1 手册
2 自动
3 手册
4 手册

我尝试了以下代码:

mask = df['Purchase Order Num'].str.contains('Auto', na= False, case=False)
df['Flag'] = np.where(df[mask], 'Yes', '')

我得到的错误是:

<块引用>

值 (2) 的长度与索引 (5) 的长度不匹配

出了什么问题?

1 个答案:

答案 0 :(得分:2)

当我们执行 np.where 时,我们需要将整个布尔值传递给它

mask = df['Purchase Order Num'].str.contains('Auto', na= False, case=False)
df['Flag'] = np.where(mask, 'Yes', '')

pandas 可以做

df['Flag'] = ''
df.loc[mask, 'Flag'] = 'Yes'
相关问题