在搜索了很多之后,我找不到一种简单的方法来从.h5
中提取数据,并通过Numpy
或Pandas
将其传递到.txt
或.csv
文件中。在
import h5py
import numpy as np
import pandas as pd
filename = 'D:\data.h5'
f = h5py.File(filename, 'r')
# List all groups
print("Keys: %s" % f.keys())
a_group_key = list(f.keys())[0]
# Get the data
data = list(f[a_group_key])
pd.DataFrame(data).to_csv("hi.csv")
^{pr2}$
打印数据时,我看到以下结果:
print(data)
['axis0',
'axis1',
'block0_items',
'block0_values',
'block1_items',
'block1_values']
如果有人向我解释一下他们是什么,以及我如何能够完全提取数据并将其保存在.csv文件中,我将不胜感激。似乎还没有一个常规的方法来做到这一点,这是有点挑战性的!到目前为止,我只能通过以下方式查看部分数据:
import numpy as np
dfm = np.fromfile('D:\data.h5', dtype=float)
print (dfm.shape)
print(dfm[5:])
dfm=pd.to_csv('train.csv')
#dfm.to_csv('hi.csv', sep=',', header=None, index=None)
我的期望是在.h5
文件中提取时间戳和测量值。在
h5py
将以numpy数组的形式访问HDF5数据集。获取键的调用返回数据集名称的列表。现在已经有了它们,将它们作为numpy数组访问并编写它们应该非常简单。您需要让dtype知道每个列中的内容才能正确格式化。在更新于2019年5月22日以反映在评论链接上发布的
data.h5
的内容。np.savetxt()
中的默认格式是'%.18e'
。提供了非常简单(粗糙)的逻辑,用于根据这些数据集的数据类型修改格式。这就需要更健壮的数据类型检查和格式化,以供一般使用。此外,还需要添加逻辑来解码unicode字符串。在数据似乎是由Pandas编写的,所以使用pd.read_hdf()来读取它。在
相关问题 更多 >
编程相关推荐