首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何逐小时组织数据并将缺失值设置为零?

如何逐小时组织数据并将缺失值设置为零?
EN

Stack Overflow用户
提问于 2017-07-11 03:35:20
回答 1查看 41关注 0票数 0

我一天玩几次游戏,每次都得了分。我想逐小时重新组织数据,并将缺少的值设置为零。

以下是原始数据:

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

df = pd.DataFrame({
    'Time': ['2017-01-01 08:45:00', '2017-01-01 09:11:00', 
             '2017-01-01 11:40:00', '2017-01-01 14:05:00', 
             '2017-01-01 21:00:00'],
    'Score': range(1, 6)})

它看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   Score        Time
0   1   2017-01-01 08:45:00
1   2   2017-01-01 09:11:00
2   3   2017-01-01 11:40:00
3   4   2017-01-01 14:05:00
4   5   2017-01-01 15:00:00

如何获得这样的新数据帧:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
day             Hour   Score
2017-01-01    00:00:00   0
       ... 
2017-01-01    08:00:00   1   
2017-01-01    09:00:00   2   
2017-01-01    10:00:00   0   
2017-01-01    11:00:00   3
2017-01-01    12:00:00   0
2017-01-01    13:00:00   0
2017-01-01    14:00:00   4
2017-01-01    15:00:00   5
2017-01-01    16:00:00   0
       ...  
2017-01-01    23:00:00   0

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-11 03:53:42

您可以将resample与一些聚合函数一起使用,如sum,然后使用fillna和convert to to int by astype,但首先添加firstlast DateTime值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.loc[-1, 'Time'] = '2017-01-01 00:00:00'
df.loc[-2, 'Time'] = '2017-01-01 23:00:00'
df['Time'] =  pd.to_datetime(df['Time'])

df = df.resample('H', on='Time').sum().fillna(0).astype(int)
print (df)
                     Score
Time                      
2017-01-01 00:00:00      0
2017-01-01 01:00:00      0
2017-01-01 02:00:00      0
2017-01-01 03:00:00      0
2017-01-01 04:00:00      0
2017-01-01 05:00:00      0
2017-01-01 06:00:00      0
2017-01-01 07:00:00      0
2017-01-01 08:00:00      1
2017-01-01 09:00:00      2
2017-01-01 10:00:00      0
2017-01-01 11:00:00      3
2017-01-01 12:00:00      0
2017-01-01 13:00:00      0
2017-01-01 14:00:00      4
2017-01-01 15:00:00      0
2017-01-01 16:00:00      0
2017-01-01 17:00:00      0
2017-01-01 18:00:00      0
2017-01-01 19:00:00      0
2017-01-01 20:00:00      0
2017-01-01 21:00:00      5
2017-01-01 22:00:00      0
2017-01-01 23:00:00      0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45024920

复制
相关文章

相似问题

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