首页 > 解决方案 > 在 Python 中从 CSV 解析字符串日期和值

问题描述

我的 CSV 文件如下所示:

Date Value
September 03, 2021  220.32
September 02, 2021  220.43
September 01, 2021  219.74
August 31, 2021 219.34
August 30, 2021 229.55
August 27, 2021 218.33
August 26, 2021 216.26
August 25, 2021 208.34
August 24, 2021 207.43
...
May 11, 2021    200.41
May 10, 2021    302.71
May 07, 2021    304.89
May 06, 2021    303.34
May 05, 2021    301.67
May 04, 2021    301.55
May 03, 2021    302.91
April 30, 2021  302.39
April 29, 2021  303.86
April 28, 2021  302.48
April 27, 2021  302.64
April 26, 2021  302.69
April 23, 2021  302.33
April 22, 2021  300.14
...

如何在 Python 中解析该 CSV 文件,以便(新)CSV 如下所示?

Date;Value
03.09.2021;220.32
02.09.2021;220.43
01.09.2021;219.74
...
...

我没有任何尝试,因为我不知道该怎么做。

标签: pythoncsvdate

解决方案


您可以使用内置的 datetime 模块或 pandas 来读取带有解析日期的 csv。

日期时间模块:

from datetime import datetime

dates = []
values = []

with open(path_to_csv) as csv: lines = csv.readlines()

for l in lines[1:]:
    dates += [datetime.strptime(' '.join(l.split()[:3]),"%B %d, %Y")]
    values += [l.split()[-1]]

with open(path_to_csv,'w') as csv:
    csv.write('Date;Value\n')
    for d,v in zip(dates,values):
        csv.write(f'{d.strftime("%d.%m.%Y")};{v}\n')

链接到格式关键字: https ://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

您可以在这里自己尝试 pandas read_csv(更方便): Pandas read_csv


推荐阅读