【发布时间】:2015-12-09 18:29:24
【问题描述】:
我在 Pandas 系列中加载了一些 Twitter 提要,我想以 HDF5 格式存储。这是它的一个示例:
>>> feeds[80:90]
80 BØR MAN STARTE en tweet med store bokstaver? F...
81 @NRKSigrid @audunlysbakken Har du husket Per S...
82 Lurer på om IS har fått med seg kaoset ved Eur...
83 synes han hørte på P3 at Opoku uttales Opoko. ...
84 De statsbærende partiene Ap og Høyre må ta sky...
85 April 2014. Blir MDG det nye arbeider @partiet...
86 MDG: Hasj for kjøtt. #valg2015
87 Grønt skifte.. https://t.co/OuM8quaMz0
88 Kinderegg https://t.co/AsECmw2sV9
89 MDG for honning, frukt og grønt. https://t.co/...
Name: feeds, dtype: object
每当我尝试从保存的 HDF5 文件中加载上述数据时,都会丢失一些值并替换为 ''... 当我更改索引时,相同的值会重新出现。例如,在存储索引为84-85的行时:
>>> store = pd.HDFStore('feed.hd5')
>>> store.append('feed', feeds[84:86], min_itemsize=200, encoding='utf-8')
>>> store.close()
当我读取文件时,84th 行的值现在丢失了:
>>> pd.read_hdf('feed.hd5', 'feed')
84
85 April 2014. Blir MDG det nye arbeider @partiet...
Name: feeds, dtype: object
如果我也这样做,我会得到与上面相同的输出:
>>> feeds[84:86].to_hdf('feed.hd5', 'feed', format='table', data_columns=True)
>>> pd.read_hdf('feed.hd5', 'feed')
但如果我将索引从[84:86] 更改为[84:87],则84th 行现在已加载。
>>> feeds[84:87].to_hdf('feed.hd5', 'feed', format='table', data_columns=True)
>>> res = pd.read_hdf('feed.hd5', 'feed')
>>> res
84 De statsbærende partiene Ap og Høyre må ta sky...
85 April 2014. Blir MDG det nye arbeider @partiet...
86 MDG: Hasj for kjøtt. #valg2015
Name: feeds, dtype: object
但是现在,与原始推文相比,加载的字符串缺少一些字符。这是84th 行值推文:
>>> # Original tweet (Length: 140)
>>> print (feeds[84])
De statsbærende partiene Ap og Høyre må ta skylda for Miljøpartiets fremgang. Velgerne har sett at SV og V ikke vinner frem i miljøspørsmål.
>>> # Loaded tweet (Length: 134)
>>> print (res[84])
De statsbærende partiene Ap og Høyre må ta skylda for Miljøpartiets fremgang. Velgerne har sett at SV og V ikke vinner frem i miljøspø
我计划主要使用 Python 3.3.x 来支持 PyTables 中的 unicode 列(我错了吗?),但还不能成功存储所有数据。谁能解释一下,让我知道如何避免它?
我正在使用OS: Mac OS X Yosemite, Pandas: 0.16.2, Python: 3.3.5, PyTables: 3.2.0
更新:我通过 HDFView (http://www.hdfgroup.org/products/java/hdfview/) 确认数据确实总是被存储(尽管缺少一些最后的字符),但我每次都无法成功加载它。
谢谢。
【问题讨论】:
标签: python python-3.x pandas hdf5 pytables