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

Я новичок в библиотеке Python и Pandas, и мне нужна помощь в решении этой проблемы.

У меня есть кадр данных, который выглядит следующим образом:

          timestamp       battery_level
0   2017-10-09 15:33:09   0.37
1   2017-10-09 15:36:17   0.38
2   2017-10-09 15:36:27   0.37
3   2017-10-09 15:38:08   0.38
4   2017-10-09 15:42:39   0.39
5   2017-10-09 15:45:30   0.40
6   2017-10-09 15:48:41   0.41
7   2017-10-09 15:51:52   0.42
8   2017-10-09 15:54:53   0.43
9   2017-10-09 15:57:54   0.44
10  2017-10-09 16:00:55   0.45
11  2017-10-09 16:05:47   0.46
12  2017-10-09 16:08:58   0.47
13  2017-10-09 16:12:09   0.48
14  2017-10-09 16:15:20   0.49
15  2017-10-09 16:18:11   0.50

Как я могу вычислитьразница во времени и уровень заряда батареи в час?

В этом случае я хочу получить что-то вроде этого:

            timestamp_diff  battery_diff
15:00:00    00:24:45        0.07
16:00:00    00:17:26        0.05

1 Ответ

0 голосов
/ 14 мая 2018

Используйте groupby от hour с или floor для дат с diff и sum , переименование для избежания тех же имен столбцов после reset_index:

#if necessary convert to datetimes
df['timestamp'] = pd.to_datetime(df['timestamp'])

df = df.groupby(df['timestamp'].dt.hour.rename('date')).apply(lambda x: x.diff().sum())
print (df)
     timestamp  battery_level
date                         
15    00:24:45           0.07
16    00:17:26           0.05

df = df.groupby(df['timestamp'].dt.floor('H').rename('date')).apply(lambda x: x.diff().sum())
print (df)
                    timestamp  battery_level
date                                        
2017-10-09 15:00:00  00:24:45           0.07
2017-10-09 16:00:00  00:17:26           0.05
df = df.reset_index()
print (df)
                 date timestamp  battery_level
0 2017-10-09 15:00:00  00:24:45           0.07
1 2017-10-09 16:00:00  00:17:26           0.05
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...