I have a csv file that contains data that has each days data split into a separate column.
'Time', 'Sun 01', 'Mon 02', 'Tue 03', 'Wed 04', 'Thu 05', 'Fri 06', 'Sat 07', 'Sun 08', 'Mon 09', 'Tue 10', 'Wed 11', 'Thu 12', 'Fri 13', 'Sat 14', 'Sun 15', 'Mon 16', 'Tue 17', 'Wed 18', 'Thu 19', 'Fri 20', 'Sat 21', 'Sun 22', 'Mon 23', 'Tue 24', 'Wed 25', 'Thu 26', 'Fri 27', 'Sat 28', 'Sun 29', 'Mon 30'
'00:00-00:05', '0.30', '0.30', '0.30', '0.30', '0.30', '0.40', '0.10', '0.20', '0.20', '0.20', '0.10', '0.20', '0.20', '0.30', '0.30', '0.10', '0.20', '0.20', '0.10', '0.10', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.20', '0.10', '0.10'
'00:05-00:10', '0.30', '0.30', '0.30', '0.30', '0.30', '0.50', '0.20', '0.10', '0.10', '0.20', '0.10', '0.30', '0.10', '0.20', '0.30', '0.10', '0.20', '0.10', '0.20', '0.20', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.10', '0.10', '0.10'
'00:10-00:15', '0.30', '0.30', '0.30', '0.30', '0.30', '0.40', '0.20', '0.20', '0.20', '0.20', '0.20', '0.30', '0.10', '0.30', '0.30', '0.20', '0.10', '0.20', '0.10', '0.10', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.20', '0.20', '0.10'
'00:15-00:20', '0.30', '0.30', '0.30', '0.30', '0.40', '0.50', '0.10', '0.10', '0.10', '0.20', '0.10', '0.30', '0.20', '0.30', '0.30', '0.10', '0.20', '0.20', '0.20', '0.20', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.10', '0.10', '0.00'
'00:20-00:25', '0.30', '0.30', '0.40', '0.40', '0.30', '0.40', '0.20', '0.20', '0.20', '0.20', '0.10', '0.30', '0.10', '0.30', '0.30', '0.10', '0.20', '0.10', '0.20', '0.10', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.20', '0.10', '0.20'
Using python, is there a way to rearrange the data so that each days data is added to the end of the previous days data having one long collumn?
Example:
Date, Time, Value,
01-01-2000, 00:00, 0.01
01-01-2000, 00:00, 0.01
01-01-2000, 00:05, 0.01
01-01-2000, 00:10, 0.01
02-01-2000, 00:00, 0.01
02-01-2000, 00:05, 0.01
02-01-2000, 00:10, 0.01
I'm getting stuck trying to recurse through the data. If I set the data from the csv to a variable I lose the separate lists and am not sure how to separate the data again so that I can append each day to the bottom of the new csv. Is there a method that can be used to store csv data in a variable that will maintain separate lists for each row?
So far I have:
import csv
month_year = "01-2000"
filename = 'test.csv'
converted_data = "converted_" + filename
cols = ['Time', 'Date(dd-mm-yyyy', 'kWh']
interval_count = 0
day = 1
with open(converted_data, 'w') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(cols)
with open(filename, 'r') as csvfile:
data = csv.reader(csvfile)
next(data)
for line in data:
total_count = len(line[1:]) * 288 # 288 = amount of 5 min intervals in 24 hours
time_full = line[0]
time_clean = (time_full[:5])
if day <= 9:
date = "0{0}{1}".format(day, month_year)
else:
date = "{0}{1}".format(day, month_year)
# print(line)
row = [time_clean, date, line[day]]
print(row)
csvwriter.writerow(row)
interval_count += 1
if interval_count % 288 == 0:
day += 1
interval_count = 0
Any help would be greatly appreciated.