我有一个如下所示的数据框:
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
如果有人能帮助我,我感激不尽。
由于
答案 0 :(得分:1)
我认为相同的输出使用floor
:
grouped = df.groupby(df.index.floor('h')).agg(['std', 'mean', 'skew'])
使用resample
的另一个解决方案,但它会创建完整的时间范围数据:
grouped = df.resample('h').agg(['std', 'mean', 'skew'])