【发布时间】:2017-05-05 01:15:35
【问题描述】:
我希望你们能帮助我解决 Python 编码问题。我有一个 CSV 文件,在 24 小时内收集了超过 500 万个数据点。该文件包含两列 - UTC 时间和强度值。我想每 6 分钟将所有强度数据平均到 3 分钟范围内(例如 mean(x-1.5 min : x+1.5 min),其中 x 是 0、6、12、18 等的数组)。我尝试了多种途径,但似乎没有任何效果。
我正在使用以下方法调用数据:
df=pd.read_csv("file.csv",names=['Date','Intensity'], na_values='nan')
数据示例:
df=
'Date' 'Intensity'
2016-06-17 00:00:00.054951500 15299
2016-06-17 00:00:00.056950500 13248
2016-06-17 00:00:00.058948500 12838
2016-06-17 00:00:00.060942500 8920
2016-06-17 00:00:00.062947500 12631
2016-06-17 00:00:00.064942500 13455
... (continues on for 24 hours)....
这个想法是每 6 分钟做一个 3 分钟的平均值(不包括第一个和最后一个平均值)。例如,结果数据应计算如下:
df=
'Date' 'Intensity'
average(0 : 1.5 min)= 2016-06-17 00:00:00 14554
average(4.5 : 7.5 min)= 2016-06-17 00:06:00 18243
average (10.5 : 13.5 min)= 2016-06-17 00:12:00 20244
average (16.5 : 19.5 min)= 2016-06-17 00:18:00 10722
...
到目前为止,我已经尝试过使用: pd.Timedelta 命令(我似乎无法正确), 以及首先将所有时间转换为秒,然后从那里计算(但这似乎工作量太大)。有人知道我应该怎么做吗?
谢谢!
【问题讨论】:
-
如果您想要一个有用的答案以及预期的输出(也许也是您尝试的多种途径中的至少一种,(感觉最正确))
-
感谢您的建议。该帖子已被编辑。