我想在内存中将数据帧作为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吗?
答案 0 :(得分:1)
试试这个
df = pd.DataFrame(np.arange(8).reshape(-1, 2), columns=['a', 'b'])
df.to_hdf(path_or_buf='path\to\your\file')
答案 1 :(得分:1)
你的第一个论点 df.to_hdf() 必须是“路径(字符串)或HDFStore对象”而不是io流。文档:http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.to_hdf.html