使用python

时间:2018-08-17 13:51:39

标签: python csv statistics

摘要

我有一个.csv文件,其中包含温度值和测量温度时的时间戳。我想做的是找到值在特定值以下完成的时间段。我想在没有数据库的情况下进行操作,我知道使用mysql或其他方法很容易。 这是一个学习python统计信息的私人项目。

数据结构

001,"2018-8-15 08:00:00", 89
002,"2018-8-15 08:00:30", 68
003,"2018-8-15 08:01:00", 56
004,"2018-8-15 08:01:30", 55
005,"2018-8-15 08:02:00", 56
006,"2018-8-15 08:02:30", 63

一个文件每天包含720个条目。

我的想法是什么?

   with open('2018815') as file:
     for line in files:
       s = line.strip().split(",")

       if s[3] == "temperature":
         continue

       if int(s[3]) < 60:
         setStart()

       if int(s[3]) > 60:
         setEnd()

函数setStartsetEnd尚未实现,因为我发现自己的想法有误。当我运行代码并仅打印值时,我发现该周期内的周期也定义为一个周期。

我有什么问题?

  1. 如何跳过时段内的时段?
  2. 是否可以使用一个库来更轻松地解决此问题?

1 个答案:

答案 0 :(得分:1)

如上所述,pandas是您需要的库,但是如果您想在循环中使用循环,您仍然可以添加一个布尔值,以免在句点时开始添加:

with open('2018815') as file:
     is_in_periode = False
     for line in files:
       s = line.strip().split(",")

       if s[3] == "temperature":
         continue

       if(int(s[3]) < 60 and not is_in_periode):
         setStart()
         is_in_periode = True

       if(int(s[3]) > 60 and is_in_periode):
         setEnd()
         is_in_periode = False