首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pandas,python中,如何将时间数据集缩减为新的6小时平均数据集?

在pandas,python中,如何将时间数据集缩减为新的6小时平均数据集?
EN

Stack Overflow用户
提问于 2020-06-16 16:40:14
回答 1查看 44关注 0票数 0

我正在尝试在python中实现数据帧的每6小时平均值。请参考下面的示例。

代码语言:javascript
复制
                  time  temperature
0  2020-01-01 04:30:00            2
1  2020-01-01 05:50:00            3
2  2020-01-01 09:30:00            4
3  2020-01-01 11:50:00            6
4  2020-01-01 13:30:00            3
5  2020-01-01 13:55:00            4
6  2020-01-01 20:30:00            1
7  2020-01-01 22:55:00            4
8  2020-01-02 02:30:00            7
9  2020-01-02 02:40:00            8
10 2020-01-02 10:30:00            3
11 2020-01-02 10:40:00            5
12 2020-01-02 14:30:00            2
13 2020-01-02 15:40:00            6
14 2020-01-02 23:30:00            5
15 2020-01-02 23:47:00            1

从这个示例中,理想情况下,我希望获得以下新数据帧:

代码语言:javascript
复制
                  time  temperature
0  2020-01-01 06:00:00          2.5
1  2020-01-01 12:00:00            5
2  2020-01-01 18:30:00          3.5
3  2020-01-01 00:00:00          2.5
4  2020-01-02 06:00:00          7.5
5  2020-01-02 12:00:00            4
6  2020-01-02 18:00:00            4
7  2020-01-02 00:00:00            3

所以,当时间是2020-01-02 18:00:00的时候,意思是在2020年1月2日,从12点到18点。示例数据帧的代码为:

代码语言:javascript
复制
import pandas as pd
from datetime import datetime

flights = {
        'time': [datetime.strptime('1/1/2020 4:30 AM', '%d/%m/%Y %I:%M %p'),datetime.strptime('1/1/2020 5:50 AM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('1/1/2020 9:30 AM', '%d/%m/%Y %I:%M %p'),datetime.strptime('1/1/2020 11:50 AM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('1/1/2020 1:30 PM', '%d/%m/%Y %I:%M %p'),datetime.strptime('1/1/2020 1:55 PM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('1/1/2020 8:30 PM', '%d/%m/%Y %I:%M %p'),datetime.strptime('1/1/2020 10:55 PM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('2/1/2020 2:30 AM', '%d/%m/%Y %I:%M %p'),datetime.strptime('2/1/2020 2:40 AM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('2/1/2020 10:30 AM', '%d/%m/%Y %I:%M %p'),datetime.strptime('2/1/2020 10:40 AM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('2/1/2020 2:30 PM', '%d/%m/%Y %I:%M %p'),datetime.strptime('2/1/2020 3:40 PM', '%d/%m/%Y %I:%M %p'),
                 datetime.strptime('2/1/2020 11:30 PM', '%d/%m/%Y %I:%M %p'),datetime.strptime('2/1/2020 11:47 PM', '%d/%m/%Y %I:%M %p')],
        'temperature': [2,3,4,6,3,4,1,4,7,8,3,5,2,6,5,1]}

df = pd.DataFrame(flights, columns = ['time','temperature'])

任何帮助都将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-16 16:42:16

DataFrame.resample6Hmean一起使用

代码语言:javascript
复制
#if necessary
df['time'] = pd.to_datetime(df['time'])

df = df.resample('6H', on='time').mean().reset_index()
print (df)
                 time  temperature
0 2020-01-01 00:00:00          2.5
1 2020-01-01 06:00:00          5.0
2 2020-01-01 12:00:00          3.5
3 2020-01-01 18:00:00          2.5
4 2020-01-02 00:00:00          7.5
5 2020-01-02 06:00:00          4.0
6 2020-01-02 12:00:00          4.0
7 2020-01-02 18:00:00          3.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62404420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档