Web抓取CSV文件时出现日期/时间格式问题



我正在学习python和软件开发。。。

自7月份以来,我每分钟都在从网站上抓取数据(日期/时间、利率(,并将其附加到CSV文件中。今天我用jupyter笔记本熊猫来绘制数据。。etc

我截取了"AM/PM"字符串字符,并在日期/时间列上使用pandas.to_datetime方法来正确格式化它和。

data['date/time'] = data['date/time'].str[0:14].map(pandas.to_datetime)

然而,日期/时间数据最初似乎是由python/jupyter/pandas按照ddmmyy惯例解释的,但在新的一个月开始时更改为解释为mmddyy。当月13日,解释改回年月日。

例如:

CSV文件在各个单元格中显示以下字符串值:

31/07/22 23:59PM
01/08/22 00:00AM
...
12/08/22 23:59PM
13/08/22 00:00AM

然而,熊猫数据帧在使用"to_datetime"方法后显示:

2022-07-31 23:59:00
2022-01-08 00:00:00
...
2022-12-08 23:59:00
2022-08-13 00:00:00 

我一直在想:为什么会发生这种情况?我该如何避免这种情况的发生?如何修复此问题,以便正确绘制时间序列数据?

更新从较大的CSV文件筛选到我正在使用的CSV文件时,似乎出现了问题。

您应该使用设置为Truepandas.to_datetimedayfirst参数来假定格式为day/month/year。否则,如果1 <= month <= 12,则假定格式为month/day/year

它将如下所示:

data['date/time'] = data['date/time'].str[0:14].map(lambda x: pd.to_datetime(x, dayfirst=True))

最新更新