我从CSV列中提取了一组格式为[yyyy,m,d]的日期。我基本上想迭代并将所有这些列表变成";日期";。我导入了日期,我知道日期类需要3个参数(年、月、日(。如何循环并将列表中的值作为日期类的参数?
下面是我的代码。CSV文件的第一列填充了mm/dd/yyyy格式的日期,我已经将其转换为yyyy/mm/dd整数格式。
from datetime import date
from csv import reader
# open file in read mode
with open('food.csv', encoding='utf-8-sig') as read_obj:
# pass the file object to reader() to get the reader object
csv_reader = reader(read_obj)
# Iterate over each row in the csv using reader object
for row in csv_reader:
# row variable is a list that represents a row in csv
date_str = row[0].replace('/',',')
date_list = date_str.split(",")
my_order = [2,0,1]
date_list = [date_list[i] for i in my_order]
for i in range(0, len(date_list)):
date_list[i] = int(date_list[i])
exp_date = date(date_list[i])
print(exp_list)
get-error:TypeError:函数缺少必需的参数"month"(位置2(
如果date类有三个参数(年、月、日(,那么在调用该类时应该输入这三个值:
exp_date = date(date_list[0], date_list[1], date_list[2])
其中0
、1
和2
分别是年、月和日的索引(我不确定哪个顺序是你的(。
在代码中,只输入一个参数date_list[i]
。此外,注意这个i
:它没有定义。
如果我正确理解你的问题,也许你可以试试Pandas。
import pandas as pd
df = pd.read_csv('directory_to_food_csv_filefood.csv')
# errors='coerce': if any cell in the_date_column doesn't satisfy the format specified, pandas will turn it to missing
# format: you can find a list of datetime format in here: https://www.programiz.com/python-programming/datetime/strftime
df['the_date_column'] = pd.to_datetime(df['the_date_column'],errors='coerce',format='%m/%d/%Y')
这是Pandas to_datetime文档的链接