【发布时间】:2018-09-14 09:27:57
【问题描述】:
我有以下熊猫数据框,其中包含一些 5 分钟的盘中数据。 DeltaBetweenClose 是NaN,表示开市当天(美国东部标准时间 9:30)的第一条交易柱。
time Date symbol DeltaBetweenClose
9:35 2017-07-17 spy NaN
9:40 2017-07-17 spy -1.2
..........................................
..........................................
16:00 2018-07-17 spy 1.7
9:35 2017-07-18 spy NaN
9:40 2017-07-18 spy 0.3
..........................................
..........................................
9:35 2018-07-17 nflx NaN
我正在尝试创建一个列CloseDelta_sd,它计算由symbols 分组的DeltaBetweenClose 列的滚动标准偏差,它查看前30 个柱并计算标准偏差,同时忽略NaNs。我的以下尝试返回所有NaNs。当DeltaBetweenClose 列的顶部只有一个NaN 时,它可以工作。
df['CloseDelta_sd'] = df.groupby('symbol').DeltaBetweenClose.transform(lambda x: x.rolling(30).std())
【问题讨论】:
-
std有一个skipna选项,默认为true -
@user3483203
skipna默认为真。我应该说清楚吗? -
你不应该这样做。您可能需要在
rolling中将min_periods设置为1 -
@user3483203 哇,它做到了!您对可能发生的事情的最初假设是什么?
-
@user3483203 您介意发布您的解决方案作为答案吗?
标签: python pandas numpy dataframe