微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 使用pandas计算不规则时间序列的日平均值

我试图从csv文件的不规则时间序列中获取每日平均值.

csv文件中的数据从2013年9月20日13:00开始,一直持续到2014年1月14日10:57:

Time                    Values
20/09/2013 13:00        5.133540
20/09/2013 13:01        5.144993
20/09/2013 13:02        5.158208
20/09/2013 13:03        5.170542
20/09/2013 13:04        5.167899    20/09/2013 13:25        5.168780
20/09/2013 13:26        5.179351
...

我导入它们:

import pandas as pd
data = pd.read_csv('<file name>', parse_dates={'Timestamp':'Time']},index_col='Timestamp')

这导致了

                           Values
Timestamp                          
2013-09-20 13:00:00        5.133540
2013-09-20 13:01:00        5.144993
2013-09-20 13:02:00        5.158208
2013-09-20 13:03:00        5.170542
2013-09-20 13:04:00        5.167899
2013-09-20 13:25:00        5.168780
2013-09-20 13:26:00        5.179351
...

然后我做

dataDailyAv = data.resample('D', how = 'mean')

这导致了

                  Values
Timestamp                 
2013-01-10        8.623744
2013-01-11             NaN
2013-01-12             NaN
2013-01-13             NaN
2013-01-14             NaN
...

换句话说,结果包含未出现在原始数据中的日期,对于某些日期(例如2013年1月10日),甚至会出现一个值.

什么是错误的想法?

谢谢.

编辑:显然解析日期有问题:2013年10月1日被解释为2013年1月10日而不是2013年10月1日.这可以通过编辑csv文件中的日期格式来解决,但有没有办法在read_csv中指定日期格式?

解决方法:

你想要dayfirst = True,这是read_csv docs中列出的众多调整之一.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐