首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pandas,Python3(而不是2)读取h5文件时出现“已感知tz”错误

使用pandas,Python3(而不是2)读取h5文件时出现“已感知tz”错误
EN

Stack Overflow用户
提问于 2016-09-22 21:46:41
回答 1查看 530关注 0票数 2

我有一个名为weather.h5的h5商店。我的默认Python环境是3.5.2。当我尝试阅读这个商店时,我得到的是TypeError: Already tz-aware, use tz_convert to convert

我已经尝试了pd.read_hdf('weather.h5','weather_history')pd.io.pytables.HDFStore('weather.h5')['weather_history],但无论如何我都会遇到错误。

EN

回答 1

Stack Overflow用户

发布于 2017-08-01 22:47:34

我也有同样的问题。我使用的是Anaconda Python: 3.4.5和2.7.3。两者都使用pandas 0.18.1。

下面是一个可重复使用的示例:

generate.py (使用Python2执行):

代码语言:javascript
复制
import pandas as pd
from pandas import HDFStore

index = pd.DatetimeIndex(['2017-06-20 06:00:06.984630-05:00', '2017-06-20 06:03:01.042616-05:00'], dtype='datetime64[ns, CST6CDT]', freq=None)
p1 = [0, 1]
p2 = [0, 2]

# Saving any of these dataframes cause issues
df1 = pd.DataFrame({"p1":p1, "p2":p2}, index=index)
df2 = pd.DataFrame({"p1":p1, "p2":p2, "i":index})

store = HDFStore("./test_issue.h5")
store['df'] = df1
#store['df'] = df2
store.close()

read_issue.py:

代码语言:javascript
复制
import pandas as pd
from pandas import HDFStore

store = HDFStore("./test_issue.h5", mode="r")
df = store['/df']
store.close()

print(df)

在Python2中运行read_issue.py没有问题,并生成以下输出:

p1 p2

2017-06-20 11:00:06.984630-05:00 0 2017-06-20 11:03:01.042616-05:00 1 2

但在Python3中运行它会产生错误,并显示以下回溯:

回溯(最近一次调用):df =

‘df’文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行417中的文件"read_issue.py",行5,getitem return self.get(key)文件key行634,在get return self._read_group(组)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行1272中,在_read_group return s.read(**kwargs)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行2779中,在读取ax = "/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",(‘轴%d’% i)文件索引行2367中,在read_index _中,索引= self.read_index_node(getattr(self.group,key))文件索引行2492,在新的"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/indexes/base.py",(data,kind,encoding=self.encoding)文件“/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/indexes/base.py”,行153,在新的结果=encoding=self.encoding(data,copy=copy,name=name,**kwargs)文件kwargs行91,在wrapper return func(*args,**kwargs)文件的第321行中,在new raise TypeError(“已经知道tz,使用tz_convert”TypeError:已经知道tz,使用tz_convert进行转换。正在关闭其余打开的文件:./test_Ise.h5...已完成

因此,指数存在一个问题。但是,如果将df2保存在generate.py中(datetime作为列,而不是索引),则Python3在read_issue.py中会产生不同的错误:

回溯(最近一次调用):文件"read_issue.py",行5,在df =

‘/df’文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行417,在getitem return self.get(key)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行634,在get return self._read_group(组)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行1272中,在_read_group return s.read(**kwargs)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/io/pytables.py",行2788中,在读取值(Blk_items)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/core/internals.py",行2518,在make_block return klass(values,ndim=ndim,fastpath=fastpath,placement=placement)文件"/home/denper/anaconda3/envs/py34/lib/python3.4/site-packages/pandas/core/internals.py",行90,in init len(self.mgr_locs)) ValueError:传递的项目数错误2,位置意味着1关闭剩余打开的文件:./ValueError_Ise.h5...完成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39640860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档