我想在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)
是否可能在内存中进行类似的操作,或者我是否需要创建一个全新的文件?
答案 0 :(得分:1)
HDFStore
存储面向行,因此目前无法实现。
您可能需要阅读,追加并写出来。可能你可以使用:http://pandas.pydata.org/pandas-docs/stable/io.html#multiple-table-queries
但是,您也可以创建包含开头可能的所有列的表(并且只留下它们)。