Pandas HD 5-查询,其中表达式失败

j2qf4p5b  于 2023-01-04  发布在  其他
关注(0)|答案(1)|浏览(107)

我想查询HDF5文件。我想

df.to_hdf(pfad,'df', format='table')

将 Dataframe 写入光盘。
阅读我用

hdf = pandas.HDFStore(pfad)

我有一个包含numpy.datetime64值的列表,称为expirations,并尝试将hd5表的部分读入 Dataframe ,该 Dataframe 在"expiration"列中包含介于expirations[1]expirations[0]之间的值。列过期条目的格式为Timestamp('2002-05-18 00:00:00')
我使用以下命令:

df = hdf.select('df',
                where=['expiration<expiration[1]','expiration>=expirations[0]'])

但是,这将失败并产生值错误:

ValueError: The passed where expression: [expiration=expirations[0]]
            contains an invalid variable reference
            all of the variable refrences must be a reference to
            an axis (e.g. 'index' or 'columns'), or a data_column
            The currently defined references are: index,columns
toe95027

toe950271#

你可以试试这个代码:

df = hdf.select('df', where='expiration < expirations[1] and expiration >= expirations[0]')

或者,作为查询:

df = hdf.query('expiration < @expirations[1] and expiration >= @expirations[0]')

不确定哪一个最适合您的情况,我注意到您尝试使用'where'来过滤行,没有字符串或列表,这有意义吗?

相关问题