更新 Pandas df 给定的字符串查询

Update Pandas df Given String Query

由于用户在界面中引入的数据,我有一个类似字符串的查询。

query = '(ColA=="7") & (ColB=="3") & (ColC=="alpha") & (ColD=="yu")'

现在我想根据这些条件更新 df 的一列,并为其分配一个变量 Z。

我不知道是否可以用 loc

以某种方式完成
df.loc[query, 'ColZ'] = Z

是的,可以用 query

df.query(query)['ColZ']

更新

df.loc[df.query(query).index(),'ColZ']=Z

我自己解决了:

df.loc[df.eval(query), 'ColZ'] = Z

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.eval.html