我有一个大的hdf5文件,看起来像这样:
A/B/dataset1, dataset2
A/C/dataset1, dataset2
A/D/dataset1, dataset2
A/E/dataset1, dataset2
Run Code Online (Sandbox Code Playgroud)
...
我想创建一个仅包含以下内容的新文件:A/B/dataset1,dataset2 A/C/dataset1,dataset2
python中最简单的方法是什么?
我做了:
fs = h5py.File('source.h5', 'r')
fd = h5py.File('dest.h5', 'w')
fs.copy('group B', fd)
Run Code Online (Sandbox Code Playgroud)
问题是我得到了dest.h5:
B/dataset1, dataset2
Run Code Online (Sandbox Code Playgroud)
并且我遗漏了一部分树枝.
获取具有特定时间的数据帧的所有行的最有效方法是什么?例如,如果我创建以下DataFrame,
df = DataFrame(index=pd.date_range('2010-01-01', '2016-04-01',freq='min'))
Run Code Online (Sandbox Code Playgroud)
然后尝试在下午3点的时间内获取所有行:
%timeit df[df.index.time == time(15,0)]
1 loops, best of 3: 9.29 s per loop
Run Code Online (Sandbox Code Playgroud)
它工作但很慢.
那么,在两个特定时间之间有效切片呢?
%timeit df[(df.index.time >= time(15,0)) & (df.index.time <= time(16,0))]
1 loops, best of 3: 18.7 s per loop
Run Code Online (Sandbox Code Playgroud) 我经常有这种需要,似乎无法找到有效地做到这一点的方法.
假设我有一个pandas DataFrame对象,我希望每个元素的值(i,j)
等于f(index[i], columns[j])
.
使用applymap
,每个元素的索引和列的值将丢失.
最好的方法是什么?