Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python tz_本地化:由于DST而不存在时间错误_Python_Date_Pandas_Timezone_Pytz - Fatal编程技术网

python tz_本地化:由于DST而不存在时间错误

python tz_本地化:由于DST而不存在时间错误,python,date,pandas,timezone,pytz,Python,Date,Pandas,Timezone,Pytz,我有一个数据框“s15_d”(143977行),带有一个tz naive列“actual_datetime”(2015年夏季航班从2015-03-29 00:00:00到2015-10-24 00:00:00:00。这正是Euope/阿姆斯特丹的夏令时(DST))。在转换为UTC之前,我想将其本地化到给定的时区(“欧洲/阿姆斯特丹”)。在本地化阶段,出现了一些问题:不存在时间错误:2015-03-29 02:15:34 我第一次投到datetime64[ns] s15_d.actual_date

我有一个数据框“s15_d”(143977行),带有一个tz naive列“actual_datetime”(2015年夏季航班从2015-03-29 00:00:00到2015-10-24 00:00:00:00。这正是Euope/阿姆斯特丹的夏令时(DST))。在转换为UTC之前,我想将其本地化到给定的时区(“欧洲/阿姆斯特丹”)。在本地化阶段,出现了一些问题:不存在时间错误:2015-03-29 02:15:34

我第一次投到datetime64[ns]

s15_d.actual_datetime = s15_d.loc[:, ('actual_datetime')].apply(lambda x: pd.to_datetime(x, format = '%Y-%m-%d %H:%M:%S' , infer_datetime_format = True))
输出(前10行)如下所示:

2015-10-24 23:57:35
2015-10-24 23:50:52
2015-10-24 23:02:11
2015-10-24 22:33:09
2015-10-24 22:22:11
2015-10-24 22:19:17
2015-10-24 22:16:45
2015-10-24 22:13:20
2015-10-24 22:06:30
2015-10-24 21:59:19
如果我跑

s15_d.actual_datetime.dt.tz_localize('Europe/Amsterdam')
尝试本地化指定时区中不存在的日期时间时,pytz会引发异常“NoneExistentTimeError”。 好的,很明显是“2015-03-29 02:15:34”时间戳导致了问题,但即使在“实际日期时间”列中也不是这样:

s15_d[s15_d.actual_datetime == '2015-03-29 02:15:34']
不返回任何行,因此引发的错误位于不存在的日期,甚至不在数据帧中。有没有办法解决这个问题?也许在Holland切换到DST(从02:00到03:00?)的那一小时内,就可以摆脱所有的争吵,已经尝试了很多事情

最后一点。如果我过滤掉DST“危险区域”中的日期时间行,如下所示:

S15_filtered = s15_d[(s15_d.actual_datetime > '2015-03-29 05:00:00')]

tz_本地化工作,但我也希望包括这些值,而不是排除它们。thnx

您确定比较使用相同的时区吗?(如何解释
'2015-03-29 02:15:34'
是本地时区吗?是UTC吗?)您的本地时区是
'Europe/Amsterdam'
?要进行调试,您能否迭代选择仍会引发错误的数据帧的较小子集?直到您可以隔离导致错误的行/日期。如果可能,提供一个独立的可重复的示例。您确定比较使用相同的时区吗?(如何解释
'2015-03-29 02:15:34'
是本地时区吗?是UTC吗?)您的本地时区是
'Europe/Amsterdam'
?要进行调试,您能否迭代选择仍会引发错误的数据帧的较小子集?直到您可以隔离导致错误的行/日期。如果可能,提供一个自包含的可复制示例。