【发布时间】:2019-07-04 01:49:12
【问题描述】:
我有一个数据框,其中包含一篮子 100 只股票的每小时收益。我目前计算的一件事是每小时每只股票的平均回报,然后取这个数字的滚动 MA。所以我在做滚动平均值之前对每一行求和,然后除以 100。假设 df 看起来像这样:
Time Stock 1 Stock 2 Stock 3 Stock 4 ... Stock 100
09:00 0.25 0.14 0.07 0.31 0.12
10:00 0.05 0.01 -0.03 0.18 0.09
11:00 -0.11 -0.17 0.01 -0.04 -0.13
12:00 -0.22 -0.31 -0.19 -0.34 -0.16
13:00 0.02 0.05 0.09 0.11 0.08
所以我要计算每一行的平均值是:
df['Average'] = (df.sum(axis=1)/100)
所以我没有这个问题,但是我现在要做的事情是,不要删除每行表现最高和最低的 5 只股票,然后执行该行的总和,这次除以 90。
如果它只是一个列,我会对其进行排序,然后对其进行切片,以去除顶部和底部 5。但是,鉴于我正在对行进行这些计算,我不知道我是否可以使用相同的原则。
任何帮助将不胜感激。
【问题讨论】:
标签: python pandas dataframe slice