【发布时间】:2015-05-23 02:27:18
【问题描述】:
这是我正在尝试做的事情,但我陷入了困境:需要能够在记录数据时对 csv 文件中不同数据列中的不同行进行分组和绘制图表,或者发生在白天或夜间(定义为日出,即 CDT 上午 6:18 到日落,即 CDT 下午 7:27)。我有数百天的数据要分析。我有多个 csv 文件可供使用和比较,但需要将夜间结果与白天结果与其他数据进行比较/关联。由于日出和日落时间每天都在变化,我制作了一个 Excel(csv 文件),其中每天的日出和日落时间分别列在不同的列中。此外,如何在定义的时间范围内(白天与夜间)按周或天绘制和分组所述数据。请帮助一个不擅长 Python 编码但渴望学习的苦苦挣扎的理科学生!
来自 csv 文件的样本数据(每个时间戳间隔为 30 分钟,多天)
Timestamp Avg Conc for 30 min Avg. Wind
5/20/2014 18:30 4.56789 31.23
5/20/2014 19:00 5.67890 42.34
5/20/2014 19:30 3.45678 23.45
5/20/2014 20:00 6.54321 34.56
5/20/2014 20:30 4.12345 41.23
5/20/2014 21:00 3.98765 19.87
示例数据集#2(日出和日落时间)
Date Sunrise Sunset
5/20/2014 5:33:00 20:06:00
5/21/2014 5:32:00 20:07:00
5/22/2014 5:31:00 20:08:00
5/23/2014 5:31:00 20:08:00
我的问题是如何从单独的 csv 文件中提取,安排在这个时间范围内(日光 = 日出到日落的时间)以 >=15 分钟到下一个 30 分钟的间隔向上取整,如果
我提前感谢任何可以帮助我完成大多数人认为容易或简单但对于像我这样的 Python 新手来说很复杂的任务的人。
编辑:这是我在文件中读取的代码...
import numpy as np
import pandas as pd
from datetime import datetime
flux = pd.read_csv('C:\step4n5.csv')
weather = pd.read_csv('C:\Weather_Data.csv')
header1 = flux.next() #header
header2 = weather.next()
for for Timestamp, Avg Flux Concentration (Fc) in flux:
Timestamp = datetime.strptime(Timestamp, "%M-%d-%y %H:%M:%S")
for Date, Sunrise, Sunset in weather:
Date = datetime.strptime(Date, "%M-%d-%y")
Sunrise
我被困在这里了。不确定我是否正确读取/提取时间戳。
【问题讨论】:
-
你在这个问题上有很多问题:-)。您是否有多个相同格式的“观察”文件和一个日出/日落文件?
-
是的。日出/日落是一个 csv 文件。另一个文件有很多列,我想将它们与夜间值和白天值进行比较。
-
好的,使用 pandas read_csv(() 来导入它们
-
是的,正如 Bob 所说,您在这里有很多事情要做。如果您按步骤执行此操作并展示您的工作,您可能会获得更多帮助。只需从读取(或至少尝试读取)所有数据集开始,然后从那里开始。
标签: python python-2.7 numpy pandas