您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

附带条件将HDF5文件读取到Pandas DataFrame

附带条件将HDF5文件读取到Pandas DataFrame

hdf5文件必须以table格式(而不是fixed格式)编写,以便可以使用pd.read_hdfwhere参数进行查询

此外,A必须声明为data_column

df.to_hdf('/tmp/out.h5', 'results_table', mode='w', data_columns=['A'],
          format='table')

或者,将所有列指定为(可查询的)数据列:

df.to_hdf('/tmp/out.h5', 'results_table', mode='w', data_columns=True,
          format='table')

那你可以用

pd.read_hdf('/tmp/out.h5', 'results_table', where='A in [1,3,4]')

选择值列为A1、3或4的行。例如,

import numpy as np
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2],
    'B': [0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1],
    'C': [34, 32, 35, 34, 31, 34, 29, 34, 12, 34, 32, 34],
    'D': [11, 15, 22, 15, 9, 15, 11, 15, 14, 15, 13, 15]})

df.to_hdf('/tmp/out.h5', 'results_table', mode='w', data_columns=['A'],
          format='table')

print(pd.read_hdf('/tmp/out.h5', 'results_table', where='A in [1,3,4]'))

产量

    A  B   C   D
0   1  0  34  11
2   3  1  35  22
3   4  1  34  15
5   1  0  34  15
7   3  0  34  15
8   4  1  12  14
10  1  0  32  13

如果值列表很长vals,则可以使用字符串格式来组成正确的where参数:

where='A in {}'.format(vals)
其他 2022/1/1 18:36:11 有391人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶