2016-09-28 6 views
0

Вот пример dataframe для справки:Resampling (повышающая дискретизация) Панды мультииндекс 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) 

Как это выглядит:

enter image description here

Я хотел бы ресэмплировать date уровень мультииндекса к недельной частоте W-FRI с помощью повышающей дискретизации, то есть копирования из последних значений how='last'. Примеры, которые я видел, обычно приводят к агрегации данных (которые я хочу избежать) после использования функции pd.Grouper.

Редактировать: Я нашел решение ниже, но мне интересно, есть ли более эффективный метод.

ответ

1

Edit: Я нашел решение:

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

, но мне интересно, если есть более эффективный способ сделать это.