2017-07-13 69 views
1

我正在尋找數據框的前向填充,直到當前季度。熊貓數據框前向填充到當前季度

我有以下數據框:

Quarter Name Value 
2016Q4 A  2 
2017Q1 B  3 
2017Q2 C  1 

輸出要求:

Quarter Name Value 
2016Q4 A  2 
2017Q1 B  3 
2017Q2 C  1 
2017Q3 C  1 

請注意,2017Q3是當前季度,這是需要什麼來向前填補。 任何幫助表示讚賞。 感謝

回答

2

確保Quarter是一個時段列

df.Quarter = pd.PeriodIndex(df.Quarter, freq='Q') 

使用pd.period_range建立一個新的索引,然後reindex

idx = pd.period_range(df.Quarter.min(), pd.datetime.now(), freq='Q') 
df.set_index('Quarter').reindex(idx, method='ffill').reset_index() 

    index Name Value 
0 2016Q4 A  2 
1 2017Q1 B  3 
2 2017Q2 C  1 
3 2017Q3 C  1 

是超級安全,只有從增加新的索引值目前最新的季度到現在

pidx = pd.PeriodIndex(df.Quarter, freq='Q') 
nidx = pd.period_range(pidx.max(), pd.datetime.now(), freq='Q') 

df.Quarter = pidx 

df.set_index('Quarter').reindex(pidx.union(nidx), method='ffill').reset_index() 

    index Name Value 
0 2016Q4 A  2 
1 2017Q1 B  3 
2 2017Q2 C  1 
3 2017Q3 C  1