将pandas DataFrame写入内存缓冲区中的HDF

时间:2017-01-06 13:50:51

标签: python pandas hdf

我想在内存中将数据帧作为hdf。下面的代码导致"属性错误:' _io.BytesIO'对象没有属性' put'"。我使用的是python 3.5和pandas 0.17

import pandas as pd
import numpy as np
import io

df = pd.DataFrame(np.arange(8).reshape(-1, 2), columns=['a', 'b'])
buf = io.BytesIO()
df.to_hdf(buf, 'some_key')

更新: 正如UpSampler所指出的那样" path_or_buf"不能是一个io流(我觉得很困惑,因为buf通常可以是一个io流,见to_csv)。除了写入磁盘并重新读取之外,我可以在内存中获取数据帧作为hdf吗?

2 个答案:

答案 0 :(得分:1)

试试这个

df = pd.DataFrame(np.arange(8).reshape(-1, 2), columns=['a', 'b'])
df.to_hdf(path_or_buf='path\to\your\file')

参考pandas.DataFrame.to_hdf

答案 1 :(得分:1)

你的第一个论点     df.to_hdf() 必须是“路径(字符串)或HDFStore对象”而不是io流。文档:http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.to_hdf.html