我有一個熊貓數據幀中的索引(注意頻率:H) -寫入HDFStore時,是否可以保留Pandas tseries DatetimeIndex的頻率?
<class 'pandas.tseries.index.DatetimeIndex'>
[2011-01-01 00:00:00, ..., 2013-12-31 23:00:00]
Length: 26304, Freq: H, Timezone: None
有多個列,但排第幾(和其他散落各處)都NA條目。如果我寫這篇文章的HDF文件這樣的:
hdfstore.put('/table', df, format='table', data_columns=True, append=False)
,然後讀回用:
df = hdfstore['/table']
,並期待指數,我看到:
<class 'pandas.tseries.index.DatetimeIndex'>
[2011-01-11 04:00:00, ..., 2013-12-31 23:00:00]
Length: 24656, Freq: None, Timezone: None
注意, Freq現在爲None,並且行數少,開始日期時間晚。第一行現在是原始DataFrame的第一行,其中至少包含一個非NA列值。
首先,這是由於HDF5格式的侷限性,數據幀的存儲方式或錯誤而導致的預期行爲?
有沒有一種乾淨的方法來避免這種情況的發生,或者我只是需要在加載後「修復」索引。不知道做這件事的最好方法是什麼。
一個快速又髒的解決方法是隻添加一個包含全0的虛擬列。然後,在重新加載時,DatetimeIndex的Freq被保留。顯然,這有不必要的存儲開銷。 – DavidJ