簡體   English   中英

重采樣(上采樣)Pandas多索引數據框

[英]Resampling (Upsample) Pandas multiindex dataframe

這是一個示例數據框供參考:

import pandas as pd
import datetime
import numpy as np
np.random.seed(1234)

arrays = [np.sort([datetime.date(2016, 8, 31), datetime.date(2016, 7, 31), datetime.date(2016, 6, 30)]*3),
         ['A', 'B', 'C', 'D', 'E']*5]
df = pd.DataFrame(np.random.randn(15, 4), index=arrays)
df.index.rename(['date', 'id'], inplace=True)

看起來像什么:

在此處輸入圖片說明

我想通過上采樣將多索引的date級別重新采樣為每周頻率W-FRI ,即從最新值中復制how='last' 我看到的示例通常在使用pd.Grouper函數后最終匯總數據(我想避免)。

編輯:我在下面找到了一個解決方案,但我想知道是否有一種更有效的方法。

編輯:我找到了一個解決方案:

df.unstack().resample('W-FRI', how='last', fill_method='ffill')

但我想知道是否有更有效的方法來做到這一點。

在當前的熊貓版本0.23.3中,您的方法將導致警告:

FutureWarning:fill_method不建議使用.resample()

新語法是.resample(...)。last()。ffill()

這不會引起警告:

df.unstack(level=1).resample('W-FRI').pad()

最好明確聲明拆棧級別(在您的情況下為1或-1)IMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM