我正在学习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文件时,似乎出现了问题。
您应该使用设置为True
的pandas.to_datetime
dayfirst参数来假定格式为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))