pandas HDF5 numpy创建的数据帧不能使用.head()或display(df)

时间:2017-09-15 07:39:27

标签: python pandas numpy jupyter-notebook h5py

我从HDF5文件中提取numpy数据(所有非零浮点数),然后将其转换为pandas数据帧,然后我尝试在里面显示数据,但这是失败的。我在Jupyter笔记本中做到了这一切。

import h5py  # necessary for storing
import pandas as pd
from IPython.display import display, HTML

h5 = h5py.File('some_file')
predict = h5['path/to/dataset']  # get dataset reference
predict = predict[:]  # load all float data into Numpy array
col_names = [1, 2, 3]

pred_df = pd.DataFrame(data=predict, index=predict, columns=col_names)
# this works
act_df.describe()

# these don't
display(pred_df)
pred_df.head(5)

错误:

ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()

我的DataFrame似乎错误地创建了,但我不明白为什么。

解决方案(感谢con - )

删除, index=predict - >

pred_df = pd.DataFrame(data=predict, columns=col_names)

加成

如果从HDF5文件加载数据集后出现以下错误:

ValueError: DataFrame constructor not properly called!

这意味着你忘记了:

predict = predict[:]  # load all float data into Numpy array

1 个答案:

答案 0 :(得分:1)

我认为问题在于您将索引设置为预测。您可能希望单独留下索引并让pandas为您创建它。您正在尝试选择索引中的前5个元素,但索引不是整数,而是您加载的浮点数据集。