我有一个10赫兹的.csv数据文件,它的日期/时间戳在同一列中,格式如下:2014-07-05 12:01:00.0到2014-07-06 12:00:59.9,作为文件中一天的数据。我需要在24小时内(每天48小时)分成30分钟的时间段,12:01:00.0-12:29:59.9,12:30:00.0-12:59:59.9,以此类推。每个拆分的30分钟块需要导出为自己的文本文件。我对python很陌生(第3天),我正在尽我最大的努力,但是我在旋转我的轮子。我在实习,真的需要帮助。我不是程序员,只是一个试图用python来完成这项任务的化学家。我试图按行进行拆分(rows=18000,30分钟),但由于我的数据在12:00:01开始时并不均匀,这会扰乱我的行拆分计算,并且无法提供精确的30分钟分割。我被告知需要一个日期时间对象来转换成字符串。任何指导或帮助将不胜感激。提前谢谢。下面是我已经开始为日期时间对象修改它的内容,但确实需要一些指导:
import csv
import re
import os
import datetime
import numpy as np
filename = 'C:\Users\Jason\Documents\Flux Data Files\HL14_175.csv'
f = open('C:\Users\Jason\Documents\Flux Data Files\Output Flux Split 30 mins Data Files\HL14_175_split0.csv','wb')
writer = csv.writer(f,delimiter = ',')
with open(filename,"r") as datafile:
r = csv.reader(datafile,delimiter = ",")
timestamp = datetime.datetime.strptime("2014-07-05", "%Y-%m-%d %H:%M:%S:%f")
recordnumber = []
sonic1 = []
sonic2 = []
sonic3 = []
temperature = []
for row in r:
timestamp.append((row[0]))
recordnumber.append(float(row[1]))
sonic1.append(float(row[2]))
sonic2.append(float(row[3]))
sonic3.append(float(row[4]))
temperature.append(float(row[5]))
timestamp = np.array(timestamp)
recordnumber = np.array(recordnumber)
sonic1 = np.array(sonic1)
sonic2 = np.array(sonic2)
sonic3 = np.array(sonic3)
temperature = np.array(temperature)
datetime.strptime(date_string, format)
#row_count = 863998
row_count = sum(1 for row in csv.reader(open(filename)))
lines = row_count/18001.0
timestamp_split = np.array_split(timestamp,lines)
recordnumber_split = np.array_split(recordnumber,lines)
sonic1_split = np.array_split(sonic1,lines)
sonic2_split = np.array_split(sonic2,lines)
sonic3_split = np.array_split(sonic3,lines)
temperature_split = np.array_split(temperature,lines)
dataout = np.column_stack((timestamp_split[0],recordnumber_split[0],sonic1_split[0],sonic2_split[0],sonic3_split[0],temperature_split[0]))
writer.writerows(dataout)
f.close()
print('Flux Data Split Complete')
下面是一个示例数据文件:
^{pr2}$
这不是完整的解决方案,因为正确的日期转换仍然存在问题。在
我使用文本数据来模拟从csv读取。在
我对
pandas
是个初学者,所以也许有人能把它做得更好。在结果
^{pr2}$相关问题 更多 >
编程相关推荐