[英]How to resample DataFrame with MultiIndex
我正在嘗試使用 MultiIndex 重新采樣數據幀,這里的問題似乎都沒有回答這個問題。 我有一個帶有 DateTimeIndex 和另一列作為 MultiIndex 一部分的數據框。 我希望將此數據幀重新采樣到更精細的比例,並使用前向填充填充 NaN 值。 這是我認為可行的方法:
arrays = [[dt.datetime(2020,10,2,1,0),dt.datetime(2020,10,2,1,0), dt.datetime(2020,10,2,2,0),dt.datetime(2020,10,2,2,0)] ,[1 ,2 ,3 ,4 ] ]
values = [i*i for i in range(0,4)]
df = pd.DataFrame(index = arrays ,data = values)
但是,我收到此錯誤:
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'MultiIndex'
任何正確方向的幫助或指示將不勝感激
將您的索引保留為單個 DatetimeIndex,然后您可以根據需要重新采樣和重新創建索引:
dates = [dt.datetime(2020,10,2,i,0) for i in range(0,5)]
categories = [ i for i in range(0,5)]
values = [i*i for i in range(0,5)]
df = pd.DataFrame({
'cat': categories,
'value': values
}, index=dates)
df = df.resample('5T').ffill().set_index('cat', append=True)
如果您的數據幀是先前操作的結果,請從索引中刪除除日期時間以外的所有內容:
df = (
df.reset_index(level=1)
.resample('5T')
.ffill()
.set_index('cat', append=True)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.