Я хотел бы сгруппировать строки по времени, и я попробовал следующий подход
import pandas as pd
df = pd.DataFrame({'time': ["2001-01-01 10:20:30,000",
"2001-01-01 10:20:31,000",
"2001-01-02 5:00:00,000"],
'val': [1, 2, 3]})
t = pd.DatetimeIndex(df.time)
df = df.groupby([t.day, t.hour, t.minute]).count()
Результирующий фрейм данных:
time val
time time time
1 10 20 2 2
2 5 0 1 1
Ожидаемый вывод (или что-то подобное):
time count
1 1-10-20 2
2 2-5-0 1
Сюжет, который я хочу: X
- ось для минут, Y
- ось для count
, тики по дням + часам (грубее, чем минуты).
Вопросы:
1) Почему индекс состоит из 3 time
столбцов и как получить индекс только с одним столбцом с такими элементами, как 1-10-20
и 2-5-0
?
2) Как лучше всего иметь только один столбец с результатами count()
вместо двух столбцов time
и val
?
2) Как можно построить эти данные (сгруппированы по дням / часам / минутам) с галочками по дням и часам?