我有pandas表,其中的列包含有数千行的可变长度列表,例如,
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不能处理这种类型的数据帧的查询,那么替代的数据格式是什么。谢谢。
发布于 2018-08-28 21:58:23
我发现的一种解决方法是将数据存储为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')https://stackoverflow.com/questions/52054353
复制相似问题