Вы можете сделать что-то вроде этого:
import pandas as pd
import numpy as np
df=pd.read_excel('filename.xlsx') #replace filename with name of your excel file
df['date']=pd.to_datetime(df['date']) #this doesn't affect your percentile calculation but you do it to leverage full power of pandas datetime functions
val_list=df.val.values
vals=[]
perc=[]
for r in range(len(val_list)):
l=[x for x in val_list[0:r+1]]
vals.append(l)
for value in vals:
perc.append(np.percentile(value,50)) #change 50 to the percentile you want to calculate
df['percentile']=perc
print(df)
Здесь следует отметить несколько ключевых моментов:
1) Я выполнил расчет, импортировав ваши данные как pandas DF. Если вы хотите сделать это в самом массиве numpy, внесите несколько изменений в приведенный выше код. Но, Pandas DF - это элегантный способ просмотра табличных данных в Python.
2) Это может быть не самый эффективный способ, но он выполняет свою работу. Так что используйте его осторожно с очень большими наборами данных.
3) Изучите комментарии, упомянутые в коде.
Надеюсь, это поможет! Если он не ответит в комментариях ниже, я постараюсь разобраться.