更新 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
由于用户在界面中引入的数据,我有一个类似字符串的查询。
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