使用groupby agg后索引更改

时间:2018-02-05 17:27:54

标签: python pandas aggregate pandas-groupby

我有一个如下所示的数据框:

  Code                             A1    A2  A3 ...   B40
    Time
2000-01-01 00:00:10.730              NaN   1   NaN    NaN
2010-01-01 00:00:12.730              1     2   3      NaN

我想每小时汇总数据并计算一些统计数据。我使用了以下代码:

grouped = df.groupby(df.index.hour)
# computing various stats
grouped = grouped.agg(['std', 'mean', 'skew'])
grouped

输出

                                    A1                A2      ...  B40      
    Time                           mean std skew  mean std skew
     0                               1    2    0    2    1    9
     1
     .
     .
     .
    1000                              1   2    3    1    0    1

问题在于我正在丢失我的Time值并获取整数索引而不是时间。如何使用初始格式保留时间。所以我想要的输出是这样的:

                                     A1                A2    ...   B40      
    Time                           mean std skew  mean std skew
2000-01-01 00:00:00.00             1    2    0    2    1    9
.
.
.
2010-01-01 00:01:00.00              1   2    3    1    0    1

如果有人能帮助我,我感激不尽。

由于

1 个答案:

答案 0 :(得分:1)

我认为相同的输出使用floor

grouped = df.groupby(df.index.floor('h')).agg(['std', 'mean', 'skew'])

使用resample的另一个解决方案,但它会创建完整的时间范围数据:

grouped = df.resample('h').agg(['std', 'mean', 'skew'])