gpt4 book ai didi

Python,用日期制作 3 个列表

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:13 28 4
gpt4 key购买 nike

我需要一些帮助来从 CSV 文件中制作一些列表:

现在,我导入了一个文件并制作了两个列表。我的代码在这里:

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),

如何将 2011、2012 和 2013 年的 datetime 数据放入我已经在此处定义的 3 个新列表中:

week_year_2011 = []
week_year_2012 = []
week_year_2013 = []

应该做一个for语句还是什么??

另外,我如何从 2011 年、2012 年、2013 年获得正确的权重并将它们放入其他 3 个列表中,如下所示:

weight_year_2011 = []
weight_year_2012 = []
weight_year_2013 = []

我必须用 2011 年、2012 年和 2013 年的数据绘制 3 个图(在 1 个图中)。希望有人可以帮助我们制作这些新列表并将正确的数据放入其中。

最佳答案

我会使用字典按日期对数据进行分组。

您似乎有一个 CSV 文件,其标题位于第一行。这是一个更简单的版本,它按日期将数据分成单独的列表:

import csv
import datetime

by_year = {}

with open('wloss.csv', 'rb') as data1:
reader = csv.reader(data1)
next(reader, None) # skip first row with headers

for week, weight_loss in reader:
date = datetime.datetime.strptime(week, '%Y-%m-%d').date()
by_year.setdefault(date.year, []).append((week, weight_loss))

这会构建一个以年份为关键字的字典,每个值都是一个 (date, weight_loss) 元组列表。

关于Python,用日期制作 3 个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22146809/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com