我有一个这样的数据框,但要大得多:
Index Duration
1 100
2 300
3 350
4 200
5 500
6 1000
7 350
8 200
9 400
我想为每 3 行计算一个新列,但在每一行中都有中位数。像这样:
Index Duration Median
1 100
2 300 300
3 350 300
4 200 350
5 500 500
6 1000 500
7 350 350
8 200 350
9 400
因此,对于每个中间行,它需要 3 行,从头开始。但它总是必须在自己的前一排和后一排。因此,正在写入中位数的行位于中间。因此,第一行和最后一行必须为空。数据框的其余部分必须保持原样。
这是它在 Excel 中的示例图片:
在 Excel 中,这很容易。您可以将公式向下移动。我尝试了许多在这里找到的解决方案,但它们并没有按照我的意愿去做。
例如,我试过这个,但它只让我分成 3 个组,我不想要:
df.groupby(np.arange(len(df))//3).median()
#output:
Index Duration Median
1 100 500
2 300 350
3 350 350
我希望这些组像上面显示的那样重叠。我希望你能理解我的问题并能帮助我。

