我看过很多类似的帖子,但似乎都没有回答这个问题:
我有一个包含多列的数据框。假设A,B和C
我想根据A,B和C的条件更改列A的值
到目前为止,我已经知道了,但是没有用。
$sql = "INSERT INTO jeremy_table_trend (date_sourced,sha1,vsdt,trendx,notes) VALUES ('$date','$sha1','$vsdt','$trendx','$notes') ON DUPLICATE KEY UPDATE";
因此,如果A等于Harry,B等于George并且C大于2019,则将A更改为Matt
有人看到我做错了吗?
答案 0 :(得分:3)
您真的很亲密,将值Matt
分配给通过布尔掩码过滤的A
:
df.loc[(df['A']=='Harry') & (df['B']=='George') & (df['C']>'2019'),'A'] = 'Matt'
答案 1 :(得分:1)
您也可以使用np.where
df['A'] = np.where((df['A']=='Harry') & (df['B']=='George') & (df['C']>'2019'), 'Matt', df['A'])