>我有熊猫表,其中的列包含数千行的变量长度列表,例如,
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')