2014-02-19 17 views
2

我想維護一個hdf5文件中的大型PyTable。 通常作爲新的數據來了,我會追加到現有的表:大熊貓,具有不同數量列的大文件,在內存中追加

store = pd.HDFStore(path_to_dataset, 'a') 
    store.append("data", newdata) 
    store.close() 

但是,如果舊的存儲數據的列和那些進入newdata的是僅部分重疊,則返回了以下錯誤:

Exception: cannot match existing table structure for [col1,col2,col3] on appending data 

在這種情況下,我想獲得與正常數據幀附加功能 填補與南

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) 
012不相重疊的條目的行爲

是否有可能在內存中執行類似的操作,還是需要創建一個全新的文件?

+0

HDFStore存儲面向行,所以這是目前不可能的。你可能需要閱讀它,追加並寫出來。可能你可以使用:http://pandas.pydata.org/pandas-docs/stable/io.html#multiple-table-queries – Jeff

+1

做到這一點的最好方法是創建包含所有可能的列的表開始(並讓他們離開) – Jeff

回答