五点的中位数

2024-05-13 20:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据帧(df)有一个数字列表(总计1773个),我正在尝试为五个数字(例如,median of 3rd number = median (1st,2nd,3rd,4th,5th))找到一个中位数

num
10
20
15
34
...
...
...

def median(a, b, c,d,e):
    I=[a,b,c,d,e]
    return I[2]



num_median = [num[0]]

for i in range(1, len(num)):
    num_median = median(num[i - 1], num[i-2], num[i],num[i+1],num[i+2])

df['num_median']=num_median


IndexError: index 1773 is out of bounds for axis 0 with size 1773

哪里出错了?还有其他方法来计算中值吗?你知道吗


Tags: of数据innumberdf列表forreturn
1条回答
网友
1楼 · 发布于 2024-05-13 20:35:12

一个有帮助的例子:

a = [0, 1, 2, 3]
print('Length={}'.format(len(a)))
print(a(4))

你也在尝试同样的事情。元素的实际索引比它所在的位置低一个。请记住,您的异常显示您的问题所在。你知道吗

您需要修改:

for i in range(1, len(num) - 2):
    num_median = median(num[i - 1], num[i-2], num[i],num[i+1],num[i+2])

这样你上次的索引检查就不会太大了。否则,当您在数组末尾(index=1773)时,您将尝试访问一个不存在的索引(1773+2)。你知道吗

相关问题 更多 >