Как взять в среднем три строки в кадре данных и присвоить индексу первой строки среднее значение? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть датафрейм с 5-минутными временными метками в качестве индекса, и я хотел бы переключиться на 15-минутные периоды. Поэтому я хотел бы взять среднее значение из 3 5-минутных периодов, а затем присвоить этому значению значение индекса первого периода, создав другой фрейм данных.

df1= 
                                    variable_1
(Settlement_Date,)                                
2018-06-30 20:30:00                     4.5
2018-06-30 20:35:00                     3.8
2018-06-30 20:40:00                     4.2
2018-06-30 20:45:00                     4.1
2018-06-30 20:50:00                     6.0
2018-06-30 20:55:00                     3.3
2018-06-30 21:00:00                     1.9
2018-06-30 21:05:00                     2.8
2018-06-30 21:10:00                     3.1
...                                     ... 

Я хочу, чтобы этот фрейм данных стал чем-то вроде этого

df1= 
                                    variable_1
(Settlement_Date,)                                
2018-06-30 20:30:00                     4.2
2018-06-30 20:45:00                     4.5
2018-06-30 21:00:00                     2.6 
...                                     ... 

Я пытался использовать цикл for, но у меня возникают проблемы с возвратом даты в фрейм данных

mean_list = []
date_list = []

for i in range(len(df1)-3):
    mean_holding = df1[:i+3].mean()
    date_holding = df1.iloc[i+3]
    mean_list.append(mean_holding)
    date_list.append(date_holding)

1 Ответ

0 голосов
/ 02 июля 2018

Мне кажется, нужно resample с mean:

df = df.resample('15Min').mean()

Альтернативное решение с Grouper:

df = df.groupby(pd.Grouper(freq='15Min')).mean()

print (df)
                     variable_1
(Settlement_Date,)             
2018-06-30 20:30:00    4.166667
2018-06-30 20:45:00    4.466667
2018-06-30 21:00:00    2.600000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...