2
我需要一些帮助,使一些CSV文件列表:Python,制作3个日期列表
现在,我导入了一个文件,并制作了两个列表。我的代码在这里:
列表week
,包含所有星期,日期取自row[0]
。
列表weight = []
包含所有权重,从row[1]
。
我的代码,你到目前为止在这里看到:
import csv
import datetime
import matplotlib.pyplot as plt
from pprint import pprint
#Open Data/File
data1 = open('wloss.csv', 'r')
reader1 = csv.reader(data1, delimiter=',')
week = []
weight = []
dateTime = []
week_year_2011 = []
week_year_2012 = []
week_year_2013 = []
weight_year_2011 = []
weight_year_2012 = []
weight_year_2013 = []
for row in reader1:
if row[0] != 'week':
week.append(row[0][:-13])
if row[1] != 'weight loss':
weight.append(row[1])
for item in week:
dateTime.append(datetime.datetime.strptime(item, '%Y-%m-%d'))
本周名单,我得到的日期从2004年过2014
像这样(只从2005年看到的数据):
datetime.datetime(2005, 4, 10, 0, 0),
datetime.datetime(2005, 4, 17, 0, 0),
datetime.datetime(2005, 4, 24, 0, 0),
datetime.datetime(2005, 5, 1, 0, 0),
datetime.datetime(2005, 5, 8, 0, 0),
datetime.datetime(2005, 5, 15, 0, 0),
datetime.datetime(2005, 5, 22, 0, 0),
我知道2011年的第一次约会和结束日期是:
datetime.datetime(2011, 1, 2, 0, 0),
datetime.datetime(2011, 12, 25, 0, 0),
如何把在datetime
数据仅从2011年,2012年和2013年在3名新的名单就像我在这里下已经定义:
week_year_2011 = []
week_year_2012 = []
week_year_2013 = []
应该做出for
陈述或什么?
还有如何从2011年,2012年,2013得到正确的重量,把他们在其他3只列出这样的:
weight_year_2011 = []
weight_year_2012 = []
weight_year_2013 = []
我必须做出3个区(1个图)与数据2011年,2012年和2013年。 希望有人可以帮助如何制作这些新列表并在其中输入正确的数据。
我也会提示字典。当然,你可以使用'defaultdict(list)'来避免需要setdefault。 –
@JohnZwinck:是的,但我想保持简单一点,因为我已经彻底改写了整个代码。最好不要在其中引入太多新的概念。 –
那么,如果我尝试你写的代码...我得到关闭文件错误的I/O操作。 – Raaydk