首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建一个接一个的日期时间索引

创建一个接一个的日期时间索引
EN

Stack Overflow用户
提问于 2015-09-11 04:11:56
回答 1查看 202关注 0票数 1

我想在groupby函数之后恢复索引。

问题是如何在Multindex中的不同列中创建具有年份、月、日的DateTime索引。

以一个DataFrame为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
import numpy as np

index=pd.date_range('2011-1-1 00:00:00', '2011-1-31 23:50:00', freq='10min')
df=pd.DataFrame(np.random.randn(len(index),2).cumsum(axis=0),columns=['A','B'],index=index)

然后,使用grupby获取每个小时的和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
day_h = df.groupby([lambda x: x.year, lambda x: x.month, lambda x: x.day,lambda x: x.hour]).mean()

这将创建一个索引,其中年、月、日和小时分别列。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                      A         B
2011    1   1   0    0.209908  1.196164
2011    1   1   1    0.692531  0.518185
2011    1   1   2    1.674748  0.013136
2011    1   1   3    1.674748  0.013136 
2011    1   1   4    1.674748  0.013136
2011    1   1   5    1.674748  0.013136

所需的输出将是具有DateTime索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                 A         B
2011-1-1 00:00  0.209908  1.196164
2011-1-1 01:00  0.692531  0.518185
2011-1-1 03:00  1.674748  0.013136
2011-1-1 04:00  1.674748  0.013136
2011-1-1 05:00  1.674748  0.013136

在我的文件中,有一些缺少的行,所以我无法创建一个带有1h时间步长的新索引。

示例数据群后我的数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-11 06:05:47

因此,其他人有一个相似问题,但他们的解决方案是使用重采样。您可以通过映射多个索引中的元组来避免重采样以创建一个新的索引。这将很好地处理丢失的行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
day_h['new_index'] = day_h.index.map(lambda x: datetime.datetime(x[0], x[1], x[2], x[3]))
day_h.set_index('new_index')

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                        A          B
new_index                                
2011-01-01 00:00:00  -1.095114   1.995776
2011-01-01 01:00:00  -2.411459   4.508794
2011-01-01 02:00:00  -1.261747   4.953709
2011-01-01 03:00:00  -0.311934   5.454112
2011-01-01 04:00:00   2.095718   6.854375
2011-01-01 05:00:00   1.696756   3.518919
2011-01-01 06:00:00   0.623589   1.740478
2011-01-01 07:00:00   0.544426   0.916016
2011-01-01 08:00:00   2.331326   0.891177
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32523251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文