【发布时间】:2017-10-01 10:43:09
【问题描述】:
CSV 文件链接:https://www.emcsg.com/marketdata/priceinformation [我下载了 72 个周期的 CSV 文件。每天下午 12 点 - UTC+08:00,它有一个新文件,显示当天的价格和第二天上午 12 点之前的价格预测。]
我正在尝试显示能量 (USEP/$MWh) 低于每天平均值的日期和时间。
for line in lines:
try:
time = line.split(",")[1][1:-1]
interval = line.split(",")[0][1:-1]
item = line.split(",")[4][1:-1] #Choose 4th column and delete ""
if interval == next_day:
if float(item) < average:
print interval, time, float(item)
except:
pass #If it can't parse, the string is not a number
上面的代码打印出这样的东西
30 Sep 2017 01:00-01:30 84.14
30 Sep 2017 01:30-02:00 84.12
30 Sep 2017 02:00-02:30 85.11
30 Sep 2017 02:30-03:00 83.49
30 Sep 2017 03:00-03:30 80.66
30 Sep 2017 03:30-04:00 75.69
30 Sep 2017 04:00-04:30 72.45
.
.
.
30 Sep 2017 21:30-22:00 79.72
30 Sep 2017 22:00-22:30 73.23
30 Sep 2017 22:30-23:00 73.58
30 Sep 2017 23:00-23:30 72.14
30 Sep 2017 23:30-00:00 85.21
显示能源价格低于 9 月 30 日平均值的日期和时间。
但我想打印类似的东西
30 Sep 2017 01:00-04:30
30 Sep 2017 21:30-00:00
基本上我想将它们分组,因为时间是连续的。一旦出现中断(在此期间,价格高于平均水平),当价格低于平均水平时,它将在下一个“周期”打印一条新线。
我正在考虑将每个“期间”的结束时间(例如 01:00-01:30,01:30 是结束时间)与下一个期间的开始时间(例如 01:30-02:00 , 01:30 是开始时间)在下一行,但我不确定它是否可行。
提前谢谢!(:
【问题讨论】:
-
不是 100% 清楚你要做什么
-
我认为你做的是对的。一种方法:有两个变量,start 和 end.. 如果 end = start 如果不创建新条目,则追加到列表。
标签: python python-2.7 csv time