панды - получение первого и последнего значения за каждый день в дата-кадре - PullRequest
0 голосов
/ 20 октября 2018

У меня есть датафрейм за месяц, исключая субботу и воскресенье, который регистрируется каждые 1 минуту.

                         v1         v2  
2017-04-03 09:15:00     35.7       35.4  
2017-04-03 09:16:00     28.7       28.5
      ...               ...        ...
2017-04-03 16:29:00     81.7       81.5
2017-04-03 16:30:00     82.7       82.6
      ...               ...        ...
2017-04-04 09:15:00     24.3       24.2  
2017-04-04 09:16:00     25.6       25.5
      ...               ...        ...
2017-04-04 16:29:00     67.0       67.2
2017-04-04 16:30:00     70.2       70.6
      ...               ...        ...
2017-04-28 09:15:00     31.7       31.4  
2017-04-28 09:16:00     31.5       31.0
      ...               ...        ...
2017-04-28 16:29:00     33.2       33.5
2017-04-28 16:30:00     33.0       33.7

как выполнить повторную выборку фрейма данных, чтобы получить 1-е и последнее значение за каждый день.Требуемый фрейм данных:

                        v1         v2  
2017-04-03 09:15:00     35.7       35.4  
2017-04-03 16:30:00     82.7       82.6
2017-04-04 09:15:00     24.3       24.2  
2017-04-04 16:30:00     70.2       70.6
      ...               ...        ...
2017-04-28 09:15:00     31.7       31.4  
2017-04-28 16:30:00     33.0       33.7

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

1) Используйте df.groupby (имя-столбца), чтобы сгруппировать кадр данных по дате. 2) Используйте df.drop (..), чтобы удалить все, кроме первого и последнего значений в каждой группе

0 голосов
/ 20 октября 2018

Вот один из способов:

res = df.groupby(df.index.date).apply(lambda x: x.iloc[[0, -1]])
res.index = res.index.droplevel(0)

print(res)

                       v1    v2
2017-04-03 09:15:00  35.7  35.4
2017-04-03 16:30:00  82.7  82.6
2017-04-04 09:15:00  24.3  24.2
2017-04-04 16:30:00  70.2  70.6
2017-04-28 09:15:00  31.7  31.4
2017-04-28 16:30:00  33.0  33.7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...