【问题标题】:Grouping by preserving hours in pandas通过在 pandas 中保留小时数进行分组
【发布时间】:2018-11-07 13:26:33
【问题描述】:

我有以下日期范围。我想按平均每小时分组,但仍保留小时日期时间信息。

    date                    A      I   r         z
0 2017-08-01 00:00:00       3      56  4         6.   
1 2017-08-01 00:00:01       3      57  1         6   
2 2017-08-01 00:00:03       3      58  9         6   
3 2017-08-01 00:00:05       3      52  10        2.  
4 2017-08-01 00:00:06       3      50  1         1  

df.groupby(df['date'].dt.hour).mean()

date         A      I   r         z
    0        3      56  4         6.   
    1        3      57  1         6   
    2        3      58  9         6   
    3        3      52  10        2.  
    4        3      50  1         1  

我想将之前相同的日期作为索引,例如 2017-08-01 00:00:00 datetime64[ns]

如何在 Python 中实现此输出?

所需的输出:

date                        A      I   r         z
0 2017-08-01 00:00:00       3      56  4         6.   
1 2017-08-01 01:00:00       3      57  1         6   
2 2017-08-01 02:00:00       3      58  9         6   
3 2017-08-01 03:00:00       3      52  10        2.  
4 2017-08-01 04:00:00       3      50  1         1  

【问题讨论】:

    标签: python pandas datetime dataframe pandas-groupby


    【解决方案1】:

    使用resample

    df.set_index('date').resample('H').mean()
    Out[179]: 
                           A      I    r    z
    date                                     
    2017-08-01 00:00:00  3.0  55.75  6.0  5.0
    2017-08-01 01:00:00  NaN    NaN  NaN  NaN
    2017-08-01 02:00:00  NaN    NaN  NaN  NaN
    2017-08-01 03:00:00  3.0  50.00  1.0  1.0
    

    数据输入

                     date  A   I   r    z
    0 2017-08-01 00:00:00  3  56   4  6.0
    1 2017-08-01 00:00:01  3  57   1  6.0
    2 2017-08-01 00:00:03  3  58   9  6.0
    3 2017-08-01 00:00:05  3  52  10  2.0
    4 2017-08-01 03:00:06  3  50   1  1.0# different hour here
    

    【讨论】:

    • 这与 OP 的意图不同。我想他们想按小时分组,不管是哪一天,我想。
    • @coldspeed 是的,他需要澄清他的问题:-)
    • 我理解这里的问题,因为它只能在一天的间隔内使用,而不是与几天不同吧?
    • @may yes,多个日期按小时分组,不会显示日期,因为日期不同
    • @Wen 它将按小时重新采样所有天并保留索引?这就是我在这里看到的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2022-01-07
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    相关资源
    最近更新 更多