Their is an option introduced in 0.13.1 (might have been 0.13.0), where you can set dropna=False
on a put/append
to avoid dropping an all-NaN row. This is done for efficiency, as most of the time in say storing a Panel, you have lots of all-NaN rows, but no reason to store them.
Otherwise the frequency information will be preserved. Note that if you are appending
the frequency information will NOT be preserved if you append multiple times.
You can always pd.infer_freq(an_index)
if you need to re-infer the freqency (if possible). Normally this is done automatically in any event if needed.