我的问题是关于一个简单的For
循环。我有一个CSV文件,每小时显示超过4年。问题是我需要每月平均产出。因此,我使用每月所有产出的总和除以产出数量。我的输入文件具有以下格式:
power_output
timestamp
2012-01-01 00:00:00 2335.215265
2012-01-01 01:00:00 3097.521354
2012-01-01 02:00:00 3412.639293
2012-01-01 03:00:00 3366.400549
2012-01-01 04:00:00 3431.050170
时间戳的格式是yyyy-mm-dd,而不是小时。
现在的问题是,我无法在一个月的时间戳上使用for
-循环进行迭代。有人可以帮我吗?
答案 0 :(得分:1)
您可以将数据作为时间序列加载到熊猫中:
import pandas as pd
df = pd.read_csv(filename, parse_dates=True)
现在,您只需resample您的数据即可,例如
df.resample('1M').mean()
答案 1 :(得分:0)
您可以做的是建立一个2D数组,每个月有一个列表。
import csv
with open('file.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter=' ')
year_outages = [ [], [], [], [], [], [], [], [], [], [], [], [] ]
for row in reader:
month = row[0][5:7]
year_outages[int(month)].append(float(row[1]))
例如,要计算二月份的平均值,您可以执行以下操作:
feb_avg = sum(year_outages[1])/len(year_outages[1])