Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从cvs连续数据集中计算平均值/分钟?_Python_Datetime_Pandas_Group By_Mean - Fatal编程技术网

Python 如何从cvs连续数据集中计算平均值/分钟?

Python 如何从cvs连续数据集中计算平均值/分钟?,python,datetime,pandas,group-by,mean,Python,Datetime,Pandas,Group By,Mean,我是python新手,这是我的第一个问题,请为我的错误道歉 我有一个连续测量的大csv文件(大约每秒测量一次,但间隔不是固定的)。我需要得到每分钟的平均值。我发现groupby可能会帮助我完成这项工作,但我一直坚持将DATE\u TIME列指定为index,并键入“datetime”。csv文件如下所示: ,日期时间,N2O干燥 02016-03-01 02:32:02.651,0.70714453962 12016-03-01 02:32:03.762,0.7071444254000001 2

我是python新手,这是我的第一个问题,请为我的错误道歉

我有一个连续测量的大csv文件(大约每秒测量一次,但间隔不是固定的)。我需要得到每分钟的平均值。我发现groupby可能会帮助我完成这项工作,但我一直坚持将DATE\u TIME列指定为index,并键入“datetime”。csv文件如下所示:

,日期时间,N2O干燥
02016-03-01 02:32:02.651,0.70714453962
12016-03-01 02:32:03.762,0.7071444254000001
22016-03-01 02:32:05.257,0.70373171894
32016-03-01 02:32:05.953,0.70083729096
42016-03-01 02:32:07.049,0.69760065648
52016-03-01 02:32:07.928,0.6954438788699999
62016-03-01 02:32:08.726,0.687452760689999
72016-03-01 02:32:10.005,0.6724201105500001
82016-03-01 02:32:10.851,0.660728656819999
.
.
.
1045032016-03-02 08:21:18.421,0.26879397415
1045042016-03-02 08:21:19.532,0.26884030311
1045052016-03-02 08:21:20.359,0.268879686

到目前为止,我只成功地读取了数据帧中的文件,并将DATE\u TIME列指定为索引,并使用以下命令将DATE\u TIME列设置为dtype='datetime64[ns]'对象:

import pandas

df=pandas.read_csv(file,usecols=[1,'N2O_dry'])
df=df.set_index('DATE_TIME')
df=pandas.to_datetime(df.index)
然而,现在我似乎只剩下DATE\u TIME列了。谁能帮帮我吗


`

我认为您可以添加参数
解析日期
索引列
,然后与一起使用(这适用于pandas
0.18.0
):


我认为您可以将参数
parse_dates
index_col
添加到,然后与一起使用(这适用于pandas
0.18.0
):


如果我理解正确,那么使用

df.index = pd.to_datetime(df.index)
而不是

df = pd.to_datetime(df.index)
这将解决问题,只剩下
DATE\u TIME
列。 然后你会(在iPython中):

但仍然:

In [26]: df
Out[26]: 
                          N2O_dry
DATE_TIME                        
2016-03-01 02:32:02.651  0.707145
2016-03-01 02:32:03.762  0.707144
2016-03-01 02:32:05.257  0.703732
2016-03-01 02:32:05.953  0.700837
2016-03-01 02:32:07.049  0.697601
2016-03-01 02:32:07.928  0.695444
2016-03-01 02:32:08.726  0.687453
2016-03-01 02:32:10.005  0.672420
2016-03-01 02:32:10.851  0.660729

如果我理解正确,那么使用

df.index = pd.to_datetime(df.index)
而不是

df = pd.to_datetime(df.index)
这将解决问题,只剩下
DATE\u TIME
列。 然后你会(在iPython中):

但仍然:

In [26]: df
Out[26]: 
                          N2O_dry
DATE_TIME                        
2016-03-01 02:32:02.651  0.707145
2016-03-01 02:32:03.762  0.707144
2016-03-01 02:32:05.257  0.703732
2016-03-01 02:32:05.953  0.700837
2016-03-01 02:32:07.049  0.697601
2016-03-01 02:32:07.928  0.695444
2016-03-01 02:32:08.726  0.687453
2016-03-01 02:32:10.005  0.672420
2016-03-01 02:32:10.851  0.660729

非常感谢。read_csv的参数工作得非常好!重采样函数并不完全符合我的要求,因为我试图获得时间序列中每分钟的平均值,而该函数似乎给出了每分钟的总体平均值(输出仅为一个值)。我想我的问题措辞不够具体。如果能得到更多的帮助,我将不胜感激,但我也许能从这里出发!嗯,也许最好的是写和期望的输出。谢谢!read_csv的参数工作得非常好!重采样函数并不完全符合我的要求,因为我试图获得时间序列中每分钟的平均值,而该函数似乎给出了每分钟的总体平均值(输出仅为一个值)。我想我的问题措辞不够具体。如果能得到更多的帮助,我将不胜感激,但我也许能从这里出发!嗯,也许最好的方法是写和期望的输出。@vera太好了,很高兴我能帮上忙。考虑接受这个答案(点击滴答声),这样它就不会出现在未回答的问题中。“薇拉,太好了,很高兴我能帮上忙。考虑接受这个答案(点击滴答声),这样它就不会出现在未回答的问题中。