python - 在 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
...
...
我没有任何尝试,因为我不知道该怎么做。
解决方案
您可以使用内置的 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
推荐阅读
- javascript - 如何使用 Python Selenium 通过 aria-label 查找并单击 JavaScript 按钮?
- spring-boot - 如何将 RefreshScope 与启用的引导程序一起使用
- javascript - 在 React 中使用 [...Array(stateValue)] 时遇到问题。不确定这是否是正确的方法
- ruby-on-rails - Rails 使用 zip 按年份匹配的两个变量
- go - Golang 导入问题
- python - 使用 scipy 和 matplotlib 绘制信号频谱图(表面肌电图)
- django - BSModalDeleteView (django-bootstrap-modal-form) 忽略 get_success_url
- c# - 有没有办法在 Kafka 中回滚已提交的偏移量?
- c++ - C++ 打开一个没有库的窗口
- java - 如何在 SharedPreferences 中存储来自 url 的 JSONObject