Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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 在熊猫系列上使用pytz转换时区_Python_Pandas_Pytz - Fatal编程技术网

Python 在熊猫系列上使用pytz转换时区

Python 在熊猫系列上使用pytz转换时区,python,pandas,pytz,Python,Pandas,Pytz,我正在尝试转换熊猫系列的时区。我正在使用pytz包来实现这一点,但是我得到了一个值,它会被关闭几分钟。 我目前使用的代码可以在下面的答案中找到: 其他答案建议使用localize()函数来实现此功能,但在我的代码中不起作用。我尝试使用normalize()函数来解决此问题,但使用pandas系列时出现错误 错误消息:AttributeError:“Series”对象没有属性 ‘tzinfo’ 样本输入: dfNY = pd.DataFrame({'TimeSeries': [13:00, nan

我正在尝试转换熊猫系列的时区。我正在使用pytz包来实现这一点,但是我得到了一个值,它会被关闭几分钟。 我目前使用的代码可以在下面的答案中找到:

其他答案建议使用
localize()
函数来实现此功能,但在我的代码中不起作用。我尝试使用
normalize()
函数来解决此问题,但使用pandas系列时出现错误

错误消息:AttributeError:“Series”对象没有属性 ‘tzinfo’

样本输入:

dfNY = pd.DataFrame({'TimeSeries': [13:00, nan, 06:00, 'Morning', 'Afternoon', nan, nan, 01:30]})
期望输出:

dfLondon = pd.DataFrame({'TimeSeries': [18:00, nan, 11:00, 'Morning', 'Afternoon', nan, nan, 06:30]})
当前代码:

    import pandas as pd
    from pytz import timezone
    dfNY = pd.DataFrame({'TimeSeries': [13:00, nan, 06:00, 'Morning', 'Afternoon', nan, nan, 01:30]})
    tzDestination = "Europe/London"
    dtTimeSeries = pd.to_datetime(dfNY.TimeSeries, errors='coerce', format='%H:%M').dt.tz_localize(tzOrigin)
    tzChange = timezone(tzDestination)
    convertedTime = tzChange.normalize(dtTimeSeries).dt.strftime('%H:%M')
    dyNY = convertedTime.copy()
    dfNY = timeSeries.where(~convertedTime.ne('NaT'), convertedTime)
感谢您在我运行代码时提供的帮助,它工作正常。将您的代码与IMCoins进行比较,看看差异在哪里(您创建了一个单独的时间序列,而IMCoins将所有内容都保存在数据帧中)


第二,关于为什么时间戳会减少四分钟,请参见答案。你怎么能解决这个问题?嗯,我怀疑您是否有1900年的数据,因此您可以将日期设置为1902年1月1日之后。

您是否也可以显示您使用的代码?在没有代码生成错误消息的情况下添加错误消息并不是很有用。如果您查看上一个答案的输出,则可能会重复错误消息-他也会在5分钟前离开。我发现在不同的机器上,输出不同。您提供的答案的问题是,它不适用于熊猫系列。我在DTTimeExperiesory系列中对数据进行了本地化,我看不到答案之间有任何差异。偏移量持续偏移4分钟。正如链接的答案(第二个链接)所示,这个偏移量没有错,这是由于20世纪早期时间的记录方式(为什么四分钟很重要,我不知道……这只是它的工作方式,所以这里没有bug)。其他问题的答案不能解决会议记录问题2。无论使用本地化方法3,我都无法获得所需的结果。如果我尝试使用“规范化”方法,那么熊猫数据系列仍然会出错