我遇到了这个问题,并且接受的答案似乎要获得最后一行(这应该很简单)需要做很多工作。通过一些整理,我能够找到一些(对我来说)感觉更简洁的东西
设置数据
In [8]: df = DataFrame({'A' : np.random.randn(10000)},
index=pd.date_range('20130101',
periods=10000,freq='s'))
In [9]: store = pd.HDFStore('test.h5',mode='w')
In [10]: store.append('df',df)
事实上,可以使用以下语法提取最后一行(并确定索引):
拉最后一行(使用start=-1)
In [11]: store.select('df',start=-1)
A
2013-01-01 02:46:39 -0.890721
In [15]: df.iloc[[-1]]
Out[15]:
A
2013-01-01 02:46:39 -0.890721
磁盘读取
我喜欢这种形式的数据收集的另一个原因是可以使用相同的语法来读取“磁盘上”文件,特别是使用pd.read_hdf。
In [16]: s = "path/to/hdfstore/above"
In [17]: pd.read_hdf(s, start=-1)
Out[15]:
A
2013-01-01 02:46:39 -0.890721
这很有用,因为在处理 HDFStore 时需要使用 try, except, finally 完成大量工作,并且利用磁盘读取方法绕过了软件工程阶段的这些额外要求。