计算日期的Python平均值&;人工给定的时间?

计算日期的Python平均值&;人工给定的时间?,python,pandas,average,Python,Pandas,Average,我的数据集: 时间戳温度 2016年9月1日0:00:08 53.8 2016年9月1日0:00:38 53.8 2016年9月1日0:01:08 53.8 2016年9月1日0:01:38 53.8 2016年9月1日0:02:08 53.8 2016年9月1日0:02:38 54.1 2016年9月1日0:03:08 54.1 2016年9月1日0:03:38 54.1 2016年9月1日0:04:38 54 2016年9月1日0:05:38 54 2016年9月1日0:06:08 54 2

我的数据集:

时间戳温度
2016年9月1日0:00:08 53.8
2016年9月1日0:00:38 53.8
2016年9月1日0:01:08 53.8
2016年9月1日0:01:38 53.8
2016年9月1日0:02:08 53.8
2016年9月1日0:02:38 54.1
2016年9月1日0:03:08 54.1
2016年9月1日0:03:38 54.1
2016年9月1日0:04:38 54
2016年9月1日0:05:38 54
2016年9月1日0:06:08 54
2016年9月1日0:06:38 54
2016年9月1日0:07:08 54
2016年9月1日0:07:38 54
2016年9月1日0:08:08 54.1
2016年9月1日0:08:38 54.1
2016年9月1日0:09:38 54.1
2016年9月1日0:10:32 54
2016年9月1日0:11:02 54
2016年9月1日0:11:32 54
2016年9月1日0:00:08 54
2016年9月2日0:00:20 32
2016年9月2日0:00:50 32
2016年9月2日0:01:20 32
2016年9月2日0:01:50 32
2016年9月2日0:02:20 32
2016年9月2日0:02:50 32
2016年9月2日0:03:20 32
2016年9月2日0:03:50 32
2016年9月2日0:04:20 32
2016年9月2日0:04:50 32
2016年9月2日0:05:20 32
2016年9月2日0:05:50 32
2016年9月2日0:06:20 32
2016年9月2日0:06:50 32

from datetime import datetime  
import pandas as pd

def same_day(date_string):        
return datetime.strptime(date_string, "%m/%d/%Y %H:%M:%S").strftime('%m-%d')

df = pd.read_csv('dataset.csv', index_col=[0],parse_dates=[0], usecols=[0,1,2])
********calculate per day
print (df.index.strftime('%d%m%H'))
print (df.groupby([df.index.strftime('%d%m%H')]).mean())
这里,如何以json数组格式导出

#****** exporting in CSV format
df.reset_index().to_csv('dataset.csv')
现在我想手动给出日期,并检查每天5小时10分钟的平均值。就像那样。我们在哪里可以手动给出日期和时间??请帮忙

例如:- 2016年9月1日10分钟平均值为36.08 2016年9月2日10分钟平均值为39.05

2016年9月1日5小时平均值为45.2 2016年9月1日5小时平均值为44.3

就像每次约会,无论我给什么日期,我给什么时间

使用以下代码,我可以找到小于2分钟的温度:-

    import pandas as pd
    df = pd.read_csv('dataset.csv', parse_dates=['Timestamp'])
    #print (df)

    mask =  df.Timestamp.dt.minute < 2
    df1 = df[mask]

    df2 = df1.Timestamp.dt.date == pd.to_datetime('9/1/2016').date()
    print (df2)
错误即将来临:-

AttributeError: 'Series' object has no attribute 'set_index'

我根据示例数据创建了一个数据框(我将“文件”选项卡设为分隔符):

然后我开始阅读,似乎如果DataFrame索引是一个日期时间序列,可能会更容易-我还注意到数据中有一些不连续的日期时间,所以我在设置索引后进行了排序(文档中有关于不连续日期时间的警告):

我没有深入阅读文档(在阅读时练习示例),直到我偶然发现了一种过滤日期时间范围的方法:

>>> df1['2016-09-01 00:01:30' : '2016-09-01 00:03:15']
                     Temperature
Timestamp                       
2016-09-01 00:01:38         53.8
2016-09-01 00:02:08         53.8
2016-09-01 00:02:38         54.1
2016-09-01 00:03:08         54.1
>>> 
这就很容易了。您可以将结果指定给名称,然后获取平均值,也可以立即获取平均值:

>>> z = df1['2016-09-01 00:01:30' : '2016-09-01 00:03:15']
>>> z.mean()
Temperature    53.95
dtype: float64
>>> df1['2016-09-01 00:01:30' : '2016-09-01 00:03:15'].mean()
Temperature    53.95
dtype: float64
>>>
我不再阅读那里的文档,因为为手动输入的日期/时间开始、结束或周围的任何时间段构造datetime字符串应该非常容易



平心而论,几周前,我受够了让熊猫做我想做的事,所以我看了电视上的“从地上爬起来的熊猫”节目。我甚至不知道我看了整件事,但我所吸收的东西极大地提高了我的工作效率。

过滤数据框以获得手动输入的日期/时间;将所需时间范围的值相加;将总数除以时间。阅读一些数据帧文档,查看可用的数据帧,观看一些视频,练习找到的示例,学习如何过滤数据帧,学习如何迭代数据帧。您需要什么还不完全清楚,缺少很多细节。你在同一天显示了两个不同的5小时平均值,但这没有任何意义-一天中有两个以上的5小时周期。,仍在挣扎..帮帮我.如果我有多个列,那么…像温度1和温度2?我尝试了但没有工作..如果是两个列,它给出了这两个列的组合平均值…主要问题是当我重新采样我的df时,它给出了完整的平均值..我使用:-df1.重新采样('D').平均值(轴=1)它给了我两个专栏的平均值。还有一件事???如何查找丢失的时间戳..我想查找丢失的数据..我的数据是每30秒一次的数据,如果某些数据丢失..如何查找这些数据?@NehaB-阅读文档,做一些教程,练习示例。思考问题并尝试找出解决方案——保持简单。
df1 = df.set_index('Timestamp')
df1 = df1.sort_index()

>>> df1.head()
                     Temperature
Timestamp                       
2016-09-01 00:00:08         53.8
2016-09-01 00:00:08         54.0
2016-09-01 00:00:38         53.8
2016-09-01 00:01:08         53.8
2016-09-01 00:01:38         53.8
>>>
>>> df1['2016-09-01 00:01:30' : '2016-09-01 00:03:15']
                     Temperature
Timestamp                       
2016-09-01 00:01:38         53.8
2016-09-01 00:02:08         53.8
2016-09-01 00:02:38         54.1
2016-09-01 00:03:08         54.1
>>> 
>>> z = df1['2016-09-01 00:01:30' : '2016-09-01 00:03:15']
>>> z.mean()
Temperature    53.95
dtype: float64
>>> df1['2016-09-01 00:01:30' : '2016-09-01 00:03:15'].mean()
Temperature    53.95
dtype: float64
>>>