簡體   English   中英

如何每小時重新采樣這個 dataframe?

[英]How to resample hourly this dataframe?

我有這個數據集,我試圖每小時計算一次“AC_POWER”的平均值,但工作不正常。 數據集每 15 分鍾有 20-22 個值。 我想要這樣的東西:

 DATE              AC_POWER
'15-05-2020 00:00' 400
'15-05-2020 01:00' 500
'15-05-2020 02:00' 500
'15-05-2020 03:00' 500

如何解決這個問題?

import pandas as pd
df = pd.read_csv('dataset.csv')
    
df = df.reset_index()
df['DATE_TIME'] = df['DATE_TIME'].astype('datetime64[ns]')
df = df.resample('H', on='DATE_TIME').mean()

>>> df.head(10).to_dict()
{'AC_POWER': {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0}, 
 'DAILY_YIELD': {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0}, 
 'DATE_TIME': {0: '15-05-2020 00:00', 1: '15-05-2020 00:00', 2: '15-05-2020 00:00', 3: '15-05-2020 00:00', 
               4: '15-05-2020 00:00', 5: '15-05-2020 00:00', 6: '15-05-2020 00:00', 7: '15-05-2020 00:00', 
               8: '15-05-2020 00:00', 9: '15-05-2020 00:00'}, 
 'DC_POWER': {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0}, 
 'PLANT_ID': {0: 4135001, 1: 4135001, 2: 4135001, 3: 4135001, 4: 4135001, 5: 4135001, 
              6: 4135001, 7: 4135001, 8: 4135001, 9: 4135001}, 
 'SOURCE_KEY': {0: '1BY6WEcLGh8j5v7', 1: '1IF53ai7Xc0U56Y', 2: '3PZuoBAID5Wc2HD', 3: '7JYdWkrLSPkdwr4', 
                4: 'McdE0feGgRqW7Ca', 5: 'VHMLBKoKgIrUVDU', 6: 'WRmjgnKYAwPKWDb', 7: 'ZnxXDlPa8U1GXgE', 
                8: 'ZoEaEvLYb1n2sOq', 9: 'adLQvlD726eNBSB'}, 
 'TOTAL_YIELD': {0: 6259559.0, 1: 6183645.0, 2: 6987759.0, 3: 7602960.0, 4: 7158964.0, 
                 5: 7206408.0, 6: 7028673.0, 7: 6522172.0, 8: 7098099.0, 9: 6271355.0}}

您需要首先將您的日期設置為索引,以下操作會執行此操作並計算 windows 的 15 分鍾的平均值:

df.set_index('DATE_TIME').resample('15T').mean()

此外,請確保您的日期向量格式正確。

我認為您正在尋找DataFrame.resample

df.resample(rule='H', on='DATE_TIME')['AC_POWER'].mean()

暫無
暫無

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

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