2017-10-10 6 views
2

je les données suivantes:suréchantillonnage données horaires à 5 données minute en pandas géants

       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 

D'où je voudrais avoir des données pour toutes les 5 minutes. En utilisant :

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

Je reçois les données suivantes:

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 

Cependant, pour les minutes entre 23h00 et 00h00 le prix devrait également être 38,46. Est-ce que quelqu'un sait comment aider?

Répondre

2

Vous devez ajouter manuellement la dernière ligne avec heure suivante et avec les données de la dernière rangée seelcted par 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