2017-09-15 104 views
0

我从HDF5文件中提取numpy数据(所有非零浮点数),然后将其转换为熊猫数据帧,然后尝试显示数据里面,但这是失败的。我在Jupyter笔记本上做了所有这些。熊猫HDF5 numpy创建的数据帧不能使用.head()或display(df)

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() 

看来我的数据帧不知何故错误地创建,但我不明白为什么。

解决方案(感谢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

我认为问题在于你设置了索引来预测。你可能想单独留下索引并让熊猫为你创建。您试图选择索引中的前5个元素,但索引不是整数,它是您加载的浮点数据集。