根据多个条件更改列值

时间:2018-11-21 11:05:19

标签: pandas

我看过很多类似的帖子,但似乎都没有回答这个问题:

我有一个包含多列的数据框。假设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

有人看到我做错了吗?

2 个答案:

答案 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'])