返回

python-使用不同的聚合函数重新采样数据帧

发布时间:2022-07-02 01:46:18 225
# node.js

我有一个如下所示的数据帧,它有一个“Stats”列,每1秒时间戳包含不同的统计值(avg、count、min、max)。

Timestamps Location Service Status Code Stats Value
1656533176875 A s1 200 count 5000
1656533176875 A s1 500 avg. 3000
.... .... .... .... ... ...
1656533176878 B s2 504 max. 6000

现在,从这个数据帧开始,我必须对用户定义的时间间隔(例如5分钟间隔)的数据重新采样,并聚合该时间间隔的值。由于这些值代表不同的聚合,我需要为数据帧的不同部分应用不同的聚合函数。例如,如果我想对5分钟的数据重新采样,如果“Stats”是“avg”,我需要应用平均值,如果“Stats”是count,则需要应用总和。此外,分组必须按中心、服务和状态代码进行。到目前为止,我已经编写了这段代码,但无法获得预期的结果。

        interval = 5
        # new column for date-time object
        new_df['date_time'] = pd.to_datetime(new_df['ts'], unit='ms', origin='unix')

        # aggregate the values based on the new time interval
        
        agg_df = new_df.copy()
        agg_df.set_index('date_time')

        resampled_df = agg_df.assign(
            n_count=np.where(agg_df['stat'] == 'count'),
            n_median=np.where(agg_df['stat'] == 'median'),
            n_max=np.where(agg_df['stat'] == 'max'),
            n_min=np.where(agg_df['stat'] == 'min'),
            n_avg=np.where(agg_df['stat'] == 'avg'),
            n_std=np.where(agg_df['stat'] == 'std'),
        ).groupby(['date_time', 'row', 'col', 'status_code'])
         .resample('{}min'.format(interval),on='date_time') 
         .value
         .agg({'n_count': sum, 'n_avg': np.mean, 'n_max': max, 
            'n_min': min, 'n_std': np.std,'n_median': np.median})
         .reset_index()
    
         print(resampled_df)
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像