使用Python对CSV文件中的时间戳进行排序

使用Python对CSV文件中的时间戳进行排序,python,csv,sorting,datetime,timestamp,Python,Csv,Sorting,Datetime,Timestamp,我试图按给定的时间戳对csv文件的内容进行排序,但它似乎对我不起作用。它们是这样给出的: 2021-04-16 12:59:26+02:00 我当前的代码: from datetime import datetime import csv from csv import DictReader with open('List_32_Data_New.csv', 'r') as read_obj: csv_dict_reader = DictReader(read_obj) c

我试图按给定的时间戳对csv文件的内容进行排序,但它似乎对我不起作用。它们是这样给出的:

2021-04-16 12:59:26+02:00
我当前的代码:

from datetime import datetime
import csv
from csv import DictReader

with open('List_32_Data_New.csv', 'r') as read_obj:
    csv_dict_reader = DictReader(read_obj)

    csv_dict_reader = sorted(csv_dict_reader, key = lambda row: datetime.strptime(row['Timestamp'], "%Y-%m-%d %H:%M:%S%z"))

    writer = csv.writer(open("Sorted.csv", 'w'))

    for row in csv_dict_reader:
        writer.writerow(row)

但是,它总是抛出错误:
时间数据“2021-04-16 12:59:26+02:00”与格式“%Y-%m-%d%H:%m:%S%z”不匹配。

我已经尝试了一个在线编译器,显然它在那里工作


任何帮助都将不胜感激。

如果您将熊猫作为图书馆使用,可能会更容易一些(归功于:MrFuppes)

如果您仍然有错误,您也可以尝试像这样解析日期(贷记到:Zerox):

不确定正确的日期时间格式?您可以尝试自动检测
推断\u datetime\u format=True

df['new_timestamps'] = pd.to_datetime(df['timestamps'], infer_datetime_format=True)
使用以下样本进行测试:

df = pd.DataFrame(['2021-04-15 12:59:26+02:00','2021-04-13 12:59:26+02:00','2021-04-16 12:59:26+02:00'], columns=['timestamps'])

非常感谢您的回答!这对我现在起作用了。出于某种原因,它仍然给了我相同的错误,但是当我将它更改为
df['new_timestamps']=df['timestamps'].map(lambda x:datetime.strtime((parser.parse(x)).strftime(“%Y-%m-%d%H:%m:%S%z”),“%Y-%m-%d%H:%m:%S%z”)
它工作了。我只是想补充一些信息,以防有人遇到同样的问题。很高兴我能帮上忙。我更新了我的答案,以包括你的发现,供未来读者阅读。如果你同意的话,请告诉我。快乐编码!解析这些字符串不需要datetime库(nice ISO8601),也不需要dateutil!pd.to_datetime将使该技巧更具可读性和效率。
df['new_timestamps'] = pd.to_datetime(df['timestamps'], infer_datetime_format=True)
df = pd.DataFrame(['2021-04-15 12:59:26+02:00','2021-04-13 12:59:26+02:00','2021-04-16 12:59:26+02:00'], columns=['timestamps'])