我有一些随机的按小时记录的时间序列数据(让我们编造一些),如何对其进行重新采样,以得出每日的最大值,并创建一个单独的数据框列,用于记录每日最大值的小时数?
import pandas as pd
import numpy as np
from numpy.random import randint
import os
np.random.seed(10) # added for reproductibility
rng = pd.date_range('10/9/2018 00:00', periods=1000, freq='1H')
df = pd.DataFrame({'Random_Number':randint(1, 100, 1000)}, index=rng)
df.index.name = 'Date'
重新采样随机数:
daily_summary = pd.DataFrame()
daily_summary['Random_Number_Resamp'] = df['Random_Number'].resample('D').max()
daily_summary.head()
接着尝试记录每日最大值发生的时间...
daily_summary['Hour_Map'] = daily_summary.Random_Number_Resamp.index.strftime('%H').astype('int')
daily_summary
上述代码不会抛出属性错误,但是
hour_map
会为零。当创建 daily_summary
数据框时,如何使 hour_map
在此步骤中也出现?
idxmax
最大列仅表示为整数小时形式? - bbartlingKeyError: 'idxmax'
。 - bbartling['Random_Number']
。没有它,你需要执行new_df[('Random_Number','idxmax')]
。对于造成的困惑,我很抱歉。 - Quang Hoang