2017-10-10 62 views
2

,我有以下數據:升頻每小時數據到5個數據在熊貓

       MTU (CET) Day-ahead Price [EUR/MWh] 
0 09.10.2017 00:00 - 09.10.2017 01:00      43.13 
1 09.10.2017 01:00 - 09.10.2017 02:00      34.80 
2 09.10.2017 02:00 - 09.10.2017 03:00      33.31 
3 09.10.2017 03:00 - 09.10.2017 04:00      32.24 
       ....... 
22 09.10.2017 22:00 - 09.10.2017 23:00      49.06 
23 09.10.2017 23:00 - 10.10.2017 00:00      38.46 

從中我想對每5分鐘數據。 使用:

price = pd.read_csv(price_data) 
    price_x = price.set_index(pd.DatetimeIndex(price['MTU (CET)'].str[:-19])) 
    price2 = price_x.resample('300S').pad() 

我得到以下數據:

2017-09-10 00:00:00 43.13 
2017-09-10 00:05:00 43.13 
2017-09-10 00:10:00 43.13 
        ... 

2017-09-10 22:45:00 49.06 
2017-09-10 22:50:00 49.06 
2017-09-10 22:55:00 49.06 
2017-09-10 23:00:00 38.46 

然而,在23:00至00:00之間分鐘的價格也應該是38.46。有誰知道如何提供幫助?

回答

2

您需要手動添加最後一行接下來的一小時,並與來自seelcted最後一行數據由iloc

price_x = price.set_index(pd.DatetimeIndex(price['MTU (CET)'].str[:-19])) 
price_x.loc[price_x.index[-1] + pd.Timedelta(1, unit='h')] = price_x.iloc[-1] 

print (price_x.tail(3)) 

        Day-ahead Price [EUR/MWh] 
MTU (CET)          
2017-09-10 22:00:00      49.06 
2017-09-10 23:00:00      38.46 
2017-09-11 00:00:00      38.46 

price2 = price_x.resample('300S').pad() 
print (price2.tail(20)) 

        Day-ahead Price [EUR/MWh] 
MTU (CET)          
2017-09-10 22:25:00      49.06 
2017-09-10 22:30:00      49.06 
2017-09-10 22:35:00      49.06 
2017-09-10 22:40:00      49.06 
2017-09-10 22:45:00      49.06 
2017-09-10 22:50:00      49.06 
2017-09-10 22:55:00      49.06 
2017-09-10 23:00:00      38.46 
2017-09-10 23:05:00      38.46 
2017-09-10 23:10:00      38.46 
2017-09-10 23:15:00      38.46 
2017-09-10 23:20:00      38.46 
2017-09-10 23:25:00      38.46 
2017-09-10 23:30:00      38.46 
2017-09-10 23:35:00      38.46 
2017-09-10 23:40:00      38.46 
2017-09-10 23:45:00      38.46 
2017-09-10 23:50:00      38.46 
2017-09-10 23:55:00      38.46 
2017-09-11 00:00:00      38.46