Я бы хотел подсчитать количество Date_Time
за 24-часовые часы, но также суммировать Amt
для каждого сегмента.Это делается только для самой большой книги.Код сегментирования выполняется за 24 часа, просто нужна помощь с суммированным Amt
Фрейм данных:
import pandas as pd
import numpy as np
df_Highest_Traded_Away_Book = [
('Book', ['A', 'A','A','A','B','C','C','C']),
('Amt', ['10', '10', '10', '10', '20', '30', '30', '30']),
('Date_Time', ['2018-09-03 01:06:09', '2018-09-08 01:23:29',
'2018-09-15 02:23:29','2018-09-20 03:23:29',
'2018-09-20 00:23:29','2018-09-25 01:23:29',
'2018-09-25 02:23:29','2018-09-30 02:23:29',])
]
Получить книгу с наибольшим объемом
df_Highest_Traded_Away_Book = pd.DataFrame.from_items(df_Highest_Traded_Away_Book)
df_Highest_Traded_Away_Book['Date_Time'] = pd.to_datetime(df_Highest_Traded_Away_Book['Date_Time'])
df_Highest_Traded_Away_Book['Time_in_GMT'] = df_Highest_Traded_Away_Book['Date_Time'].dt.hour
print(df_Highest_Traded_Away_Book)
df_Highest_Book = df_Highest_Traded_Away_Book.groupby(['Book']).size().idxmax()
print(df_Highest_Book)
Время загрузки за 24-часовой период:
df_Highest_Traded_Away_Book = (df_Highest_Traded_Away_Book['Book']
.eq(df_Highest_Book)
.groupby(df_Highest_Traded_Away_Book['Time_in_GMT'])
.sum()
.astype(int)
.reindex(np.arange(25), fill_value=0)
.to_frame(df_Highest_Book))
print(df_Highest_Traded_Away_Book )
A
Time_in_GMT
0 0
1 2
2 1
3 1
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
Требуется вывод:
A
Time_in_GMT Sum Amt
0 0 0
1 2 20
2 1 10
3 1 10
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 0 0
14 0 0
15 0 0
16 0 0
17 0 0
18 0 0
19 0 0
20 0 0
21 0 0
22 0 0
23 0 0
24 0 0