我有一个近百万个日期的列表格式为DD-Mmm-YYY。我很乐意使用Seaborn's heatmap function创建一个日历热图,以显示日历年中日期的分布(无论年份如何)。我已经想出如何将Month和Day分成单独的列,以便我有:
In [8]: df.head()
Out[8]:
original_date month day
0 05-Sep-2010 Sep 05
1 08-Apr-2010 Apr 08
2 03-Aug-2008 Aug 03
3 03-Feb-2008 Feb 03
4 14-Mar-2008 Mar 14
我可以对此数据框执行哪些操作,使其成为以月为单位的列格式,将行数作为行索引?这是我正在寻找的东西,但它是在没有Pandas的情况下完成的,使用了csv处理和嵌套字典。
01 02 03 04 05 06 07 08 09 10 ...
Jan 1923 371 341 451 437 332 338 398 403 476 ...
Feb 931 675 891 514 479 452 509 657 507 771 ...
Mar 1370 906 737 594 469 458 524 368 430 2136 ...
Apr 1433 1127 706 791 639 817 584 580 515 757 ...
May 1666 885 884 697 1626 708 809 1053 826 1281 ...
我想在Pandas中这样做,以便能够按年等过滤。
答案 0 :(得分:0)
首先,我会创建一个按月和日(不包括年份)计算的新数据框
new_df = []
for key, grp in df.groupby(['month', 'day']):
month, day = key
new_df.append({
'month': month,
'day': day,
'count': len(grp)
})
new_df = pd.DataFrame(new_df)
然后,您可以透视此数据框以提供所需的格式
new_df.pivot('month', 'day', 'count')