选择性读取包含混合类型列的熊猫数据帧



>我有熊猫表,其中的列包含数千行的变量长度列表,例如,

import pandas as pd
df = pd.DataFrame({0: [[1, 2], [3, 4, 5], [7], [8, 9, 10, 11]]}, )
###Output: 
df
0
0          [1, 2]
1       [3, 4, 5]
2             [7]
3  [8, 9, 10, 11]

我可以通过以下方式将文件存储在驱动器中

with pd.HDFStore('out_file', mode='w') as store:
df.to_hdf(store, key='data1')

但不使用以下,因为列的类型是object.

with pd.HDFStore('out_file', mode='w') as store:
df.to_hdf(store, key='data1', format='table', data_columns=True)

如何从文件中读取少量索引,而不是读取整个文件,然后删除不需要的行?如果 hdf5 无法处理此类数据帧的查询,那么替代数据格式是什么。谢谢。

我发现的一种解决方法是将数据存储为str字符串,以便仅读取选择性行,

import pandas as pd
df = pd.DataFrame({0: [[1, 2], [3, 4, 5], [7], [8, 9, 10, 11]]}, )
# Write
with pd.HDFStore('out_file', mode='w') as store:
df.astype(str).to_hdf(store, key='data1', format='table', data_columns=True)
# Now Read some rows
d.read_hdf('out_file', key='data1', where='index >1 & index < 2')

最新更新