所以我在csv文件中追加了一个巨大的数据列表(在这种情况下是3行 - > 1年,月,以及与之对应的值) 文件示例:
2001,01,65
2001,02,56
..goes until December 2001
2002,01,45
2002,02,46
..goes until December 2002
( Almost 50 years of data just like this )
我将这些值附加到列表中,并且我尝试为特定年份的每个月制作一个列表。所以,让我们说Jan,我怎样才能将jan的所有值附加到特定的年份,比如2000。 希望这是有道理的!
(请不要写长代码并长时间处理它。只有文字的方式说这样做然后这样做会有所帮助。) 我只是不知道如何在数据集合中找到特定元素。
答案 0 :(得分:0)
您可以使用循环和if条件将其添加到单独的列表中:
for rows in myOriginalList:
if row[0] == year and row[1] == month:
newFilteredList.append(row)
答案 1 :(得分:0)
如果您已连续阅读多年,连续几个月阅读,一行显示值,并将其存储在years
,months
和values
中:
filtered_list = []
query_year = 2000
query_month = 1
for year, month, value in zip(years, months, values):
if int(year) == query_year and int(month) == query_month:
filtered_list.append(int(value))
答案 2 :(得分:0)
您可以使用带有if
子句的list comprehension进行过滤:
csv_file = [
"2001,01,65",
"2001,01,23",
"2001,02,56",
"2002,01,45",
"2002,02,46"
] # Just an example. In reality, you'll want to use open() on your actual file.
# prepare a CSV reader:
import csv
reader = csv.DictReader(csv_file, ['year', 'month', 'age'])
# read and filter the data:
january_2001_data = [row for row in reader
if row['year'] == '2001' and row['month'] == '01']
# january_2001_data == [{'age': '65', 'month': '01', 'year': '2001'},
# {'age': '23', 'month': '01', 'year': '2001'}]
如果您的CSV文件真的非常真的巨大,那么您可能需要查看pandas之类的内容。