У меня есть файл данных pandas DataFrame с столбцом TIMESTAMP
, который относится к типу данных datetime64. Пожалуйста, имейте в виду, изначально этот столбец не задан как индекс; индекс просто обычные целые числа, и первые несколько строк выглядеть следующим образом:Среднее дневное количество записей в месяц в Pandas DataFrame
TIMESTAMP TYPE
0 2014-07-25 11:50:30.640 2
1 2014-07-25 11:50:46.160 3
2 2014-07-25 11:50:57.370 2
Существует произвольное количество записей на каждый день, и может быть дни без каких-либо данных. То, что я пытаюсь получить, - это среднее количество ежедневных записей в месяц, затем нарисуйте его как гистограмму с месяцами по оси x (апрель 2014, май 2014 года и т. Д.). Мне удалось вычислить эти значения, используя код ниже
dfWIM.index = dfWIM.TIMESTAMP
for i in range(dfWIM.TIMESTAMP.dt.year.min(),dfWIM.TIMESTAMP.dt.year.max()+1):
for j in range(1,13):
print dfWIM[(dfWIM.TIMESTAMP.dt.year == i) & (dfWIM.TIMESTAMP.dt.month == j)].resample('D', how='count').TIMESTAMP.mean()
, который дает следующий результат:
nan
nan
3100.14285714
6746.7037037
9716.42857143
10318.5806452
9395.56666667
9883.64516129
8766.03225806
9297.78571429
10039.6774194
nan
nan
nan
Это нормально, как она есть, и немного поработав, я могу сопоставить результаты, чтобы исправить месяцев, затем постройте график. Тем не менее, я не уверен, что это правильный/лучший способ, и я подозреваю, что может быть более простой способ получить результаты с помощью Pandas.
Я был бы рад услышать, что вы думаете. Благодаря!
ПРИМЕЧАНИЕ: Если я не устанавливаю столбец TIMESTAMP в качестве индекса, я получаю ошибку «сокращение», означающую «не допускается для этого dtype».
Я не мог понять, как это сделать, используя 'groupby'. Оказывается, «TimeGrouper» - это трюк. Большое спасибо! – marillion
Форматирование по оси x для графика штрихов с временными рядами было намного сложнее, чем я думал. Решение находится по адресу http://stackoverflow.com/questions/33642388/pandas-bar-plot-with-multiindex-dataframe, если кто-то застрял в той же точке. – marillion