我想在hdf5文件中维护一个大的PyTable . 通常,当新数据出现时,我会附加到现有表:
store = pd.HDFStore(path_to_dataset, 'a')
store.append("data", newdata)
store.close()
但是,如果旧存储数据的列和传入的新数据的列部分仅重叠,则返回以下错误:
Exception: cannot match existing table structure for [col1,col2,col3] on appending data
在这些情况下,我想获得类似于普通DataFrame追加函数的行为,该函数用NAN填充非重叠条目
import pandas as pd
a = {"col1":range(10),"col2":range(10)}
a = pd.DataFrame(a)
b = {"b1":range(10),"b2":range(10)}
b = pd.DataFrame(b)
a.append(b)
是否有可能在“内存”中进行类似的操作,或者我是否需要创建一个全新的文件?
1 回答
HDFStore
存储面向行,因此目前这是不可能的 .您可能需要读取,追加并写出来 . 可能你可以使用:http://pandas.pydata.org/pandas-docs/stable/io.html#multiple-table-queries
但是,您也可以创建包含开头可能的所有列的表(并且只留下它们) .