【发布时间】:2021-02-19 21:17:26
【问题描述】:
我有一个名为 idx 的 DatetimeIndex:
DatetimeIndex(['2020-10-24 21:00:00+03:00', '2020-10-24 23:00:00+03:00',
'2020-10-25 08:00:00+03:00', '2020-10-26 08:00:00+03:00',
'2020-10-27 13:00:00+03:00', '2020-10-29 07:00:00+03:00',
'2020-10-29 22:00:00+03:00', '2020-10-31 01:00:00+03:00',
'2020-11-01 16:00:00+03:00', '2020-11-03 18:00:00+03:00',
'2020-11-04 20:00:00+03:00', '2020-11-05 17:00:00+03:00'],
dtype='datetime64[ns, Europe/Moscow]', freq=None)
我需要遍历数据框行以计算每个行的“关闭”列的累积最大值 idx 元素到下一个,然后从下一个到下一个,依此类推。 这样做效果很好:
for i in np.arange(len(idx)):
signals.loc[idx[i]:, 'close_max'] = signals.loc[idx[i]:, 'close'].cummax(axis=0)
但迭代数据框并不是一件好事。你能在没有 for 循环的情况下帮忙吗?
【问题讨论】:
-
我不太明白您想做什么,但您认为可以并行执行还是需要为每一行生成额外数据?
-
@Charalamm 我需要为来自 idx 的时间戳之间的每个间隔找到“关闭”列的最大值
-
还是没完全明白,抱歉。你试过
.apply()吗?它在整列中应用括号内的函数
标签: python pandas for-loop iteration pandas-loc