График построения лучшего 20-минутного среднего сегмента с pandas? - PullRequest
0 голосов
/ 14 января 2020

Я написал python программу для сбора данных о мощности, которая затем сохраняется в простом csv-файле с датой и временем для первого столбца, данными о мощности для второго и третьего столбцов, например:

19:59:20.500767,97,98  
19:59:21.751683,101,98  
19:59:23.003118,105,98  
19:59:24.245070,100,95  
19:59:25.495485,107,95  
19:59:26.743368,107,114  
19:59:27.993297,107,114  
19:59:29.484559,96,95  
19:59:30.735351,94,95  
19:59:31.990451,104,104  
19:59:34.477849,103,99  
19:59:35.728108,107,99  
19:59:36.974837,105,98  
19:59:38.224963,97,98  
19:59:39.472546,97,95  
19:59:40.723557,100,95  
19:59:41.974850,92,97  
19:59:43.216107,99,97  
19:59:44.465722,101,97  
19:59:45.717749,96,97  

Затем я запускаю программу печати, которая считывает это в pandas фрейм данных, индексирует с информацией о дате и времени и производит график и некоторые статистические данные:

df = pd.read_csv(fileName, usecols=[0,1,2], names=['times', 'assiomas','adj_kickr'], header=None, parse_dates=[0], index_col=0)

plt.figure(figsize=(w, h), dpi=d)
assiomas_avg = df["assiomas"].mean()
kickr_avg =  df["adj_kickr"].mean()

avg20min = df.rolling('20MIN').mean()
max20min_ass = avg20min["assiomas"].max()
max20min_kick = avg20min["adj_kickr"].max()

print("Workout Report from file  %s :\r\n" % (fileName))

print("Workout Average Power - Assiomas %d W, Kickr %d W\n" % (assiomas_avg, kickr_avg))
print("Workout 20min Power   - Assiomas %d W, Kickr %d W\n" % (max20min_ass, max20min_kick))

plt.xlabel('Time')
plt.ylabel('Power')
plt.title('Power Graph\nAssiomas vs Kickr' )


sdf=df.rolling('5s').mean()

y = sdf.assiomas
y2 = sdf.adj_kickr

plt.plot(y)
plt.plot(y2)
plt.plot(avg20min)
plt.legend()

plt.savefig("/var/www/html/power-graph.png")

Это отображает оба значения мощности во времени и сохраняет его в графическом файле изображения. Он также отображает среднее значение за 20 минут и печатает общие средние значения для обеих степеней и записанное среднее значение MAX за 20 минут. график графических данных

Теперь, что я хотел бы сделать sh, это построить график только отрезка, соответствующего этому максимальному 20-минутному среднему. Я пробовал вариант повторной выборки, но ничего не получилось.

...