Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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 Pandas DataFrame.to_excel错误的日期时间_Python_Excel_Pandas_Datetime_Timezone - Fatal编程技术网

Python Pandas DataFrame.to_excel错误的日期时间

Python Pandas DataFrame.to_excel错误的日期时间,python,excel,pandas,datetime,timezone,Python,Excel,Pandas,Datetime,Timezone,鉴于这些数据 将熊猫作为pd导入 dt1=pd.时间戳('2018-01-11 23:00:00') dt2=pd.时间戳('2018-01-12 01:00:00') ts=pd.日期范围(dt1、dt2,频率为15分钟,tz为欧洲/维也纳) 值=列表(范围(ts.shape[0])) df=pd.DataFrame(值,索引=ts) 其中生成的df如下所示 0 2018-01-11 23:00:00+01:00 0 2018-01-1

鉴于这些数据

将熊猫作为pd导入
dt1=pd.时间戳('2018-01-11 23:00:00')
dt2=pd.时间戳('2018-01-12 01:00:00')
ts=pd.日期范围(dt1、dt2,频率为15分钟,tz为欧洲/维也纳)
值=列表(范围(ts.shape[0]))
df=pd.DataFrame(值,索引=ts)
其中生成的
df
如下所示

                           0
2018-01-11 23:00:00+01:00  0
2018-01-11 23:15:00+01:00  1
2018-01-11 23:30:00+01:00  2
2018-01-11 23:45:00+01:00  3
2018-01-12 00:00:00+01:00  4
2018-01-12 00:15:00+01:00  5
2018-01-12 00:30:00+01:00  6
2018-01-12 00:45:00+01:00  7
2018-01-12 01:00:00+01:00  8

df.to_excel('test.xlsx'))
导致Excel 2013中出现以下内容:

2018-01-11 22:00:00 0
2018-01-11 22:15:00 1
2018-01-11 22:30:00 2
2018-01-11 22:45:00 3
2018-01-12 23:00:00 4
2018-01-12 23:15:00 5
2018-01-12 23:30:00 6
2018-01-12 23:45:00 7
2018-01-12 00:00:00 8
也就是说,日期时间显示为UTC,但在当地时间午夜,日期是错误的,即
2018-01-12 23:00:00
时间应该是
2018-01-11 23:00
。现在使用Excel时,可能会有语言设置和显示选项相互干扰,但也许我的Pandas用法已经错了


操作系统语言设置为美国英语,没有Excel特定设置。Pandas版本是
0.23.0
,Python 3.6

Excel不支持日期时间中的时区。将datetime/time对象中的tzinfo设置为None或使用“remove_timezone”

ts = pd.date_range(dt1, dt2, freq='15Min')
我得到这个错误(完全回溯):

你是如何用你的代码得到一些东西的?这就是我使用的:

import pandas as pd

dt1 = pd.Timestamp('2018-01-11 23:00:00')
dt2 = pd.Timestamp('2018-01-12 01:00:00')

ts = pd.date_range(dt1, dt2, freq='15Min', tz='Europe/Vienna')
values = list(range(ts.shape[0]))

df = pd.DataFrame(values, index=ts)
df.to_excel('test.xlsx')
print ("ready")
如果我删除
,tz='Europe/Vienna'
,那么它就可以正常工作了:

在Python中,使用
print(df)
,我得到了相同的结果:


您的openpyxl版本是什么?或者你的异常是在熊猫中抛出的?完全回溯FTW@phaebz-如何检查?导入openpyxl;openpyxl.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。