tec*_*ife 6 python python-3.x pandas
我知道这在 Pandas 中有效(df 是一个数据框,op 是一个列,mult 是一个浮点变量):
df.eval("op = op * @mult", inplace=True)
Run Code Online (Sandbox Code Playgroud)
但是是否可以在行的子集(就地)上执行此操作?这给了我一个错误(ex_date 是时间戳类型的局部变量,而 df 的索引是时间戳):
df.eval("df.loc[df.index < @ex_date, op] = op * @mult", inplace=True)
Run Code Online (Sandbox Code Playgroud)
错误是:语法错误: 赋值的左侧必须是单个名称
目前无法就地进行条件评估。对此有一个突出的功能要求。建议的语法将使您的示例看起来像:
df.eval("op = op * @mult if index < @ex_date else op", inplace=True)
Run Code Online (Sandbox Code Playgroud)
(来源)
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |