【发布时间】:2021-03-18 21:41:25
【问题描述】:
我有一张如下表:
我想用以下逻辑创建另一列(Check2):
- 如果 Check1 ==0 那么 Check2 = A
- Else Check2 = Check2(滞后值) - B(滞后) - C(滞后)
预期输出应如下所示 -
我已经写了下面的代码,但是对于 50000 条记录需要很长时间(以小时为单位),请帮助
for i in range(len(df)):
if df.loc[i,'Check1'] == 0:
df.loc[i,'Check2'] = df.loc[i,'Volume']
else:
df.loc[i,'Check2'] = df.loc[i-1,'Check2'] - df.loc[i-1,'B'] -df.loc[i-1,'C']
【问题讨论】:
-
你能弄清楚
Check2(lagged value) - B - C的结果是104吗? -
@toRex, B 和 C 也是滞后值.. 现在编辑..
标签: python pandas performance time lag