我做了一些特色工程如下:
def do_group_mean(df, group_cols, cols):
agg_name = ('{}_by_{}_{}'.format(('_'.join(group_cols)), (cols), ('mean')))
df = df.merge(df[group_cols + [cols]].groupby(group_cols)[cols].mean()
.reset_index().rename(columns={cols: agg_name}), on=group_cols, how='left')
return df
df_uni = do_group_mean(df_uni, ['reqrealip'], 'hour')
df_uni = do_group_mean(df_uni, ['reqrealip'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['reqrealip'], 'day')
df_uni = do_group_mean(df_uni, ['reqrealip'], 'day_cut')
df_uni = do_group_mean(df_uni, ['adidmd5'], 'hour')
df_uni = do_group_mean(df_uni, ['adidmd5'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['adidmd5'], 'day')
df_uni = do_group_mean(df_uni, ['adidmd5'], 'day_cut')
df_uni = do_group_mean(df_uni, ['imeimd5'], 'hour')
df_uni = do_group_mean(df_uni, ['imeimd5'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['imeimd5'], 'day')
df_uni = do_group_mean(df_uni, ['imeimd5'], 'day_cut')
df_uni = do_group_mean(df_uni, ['reqrealip_adidmd5'], 'hour')
df_uni = do_group_mean(df_uni, ['reqrealip_adidmd5'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['reqrealip_adidmd5'], 'day')
df_uni = do_group_mean(df_uni, ['reqrealip_adidmd5'], 'day_cut')
df_uni = do_group_mean(df_uni, ['reqrealip_imeimd5'], 'hour')
df_uni = do_group_mean(df_uni, ['reqrealip_imeimd5'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['reqrealip_imeimd5'], 'day')
df_uni = do_group_mean(df_uni, ['reqrealip_imeimd5'], 'day_cut')
df_uni = do_group_mean(df_uni, ['ip_adidmd5'], 'hour')
df_uni = do_group_mean(df_uni, ['ip_adidmd5'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['ip_adidmd5'], 'day')
df_uni = do_group_mean(df_uni, ['ip_adidmd5'], 'day_cut')
df_uni = do_group_mean(df_uni, ['ip_imeimd5'], 'hour')
df_uni = do_group_mean(df_uni, ['ip_imeimd5'], 'hour_cut')
df_uni = do_group_mean(df_uni, ['ip_imeimd5'], 'day')
df_uni = do_group_mean(df_uni, ['ip_imeimd5'], 'day_cut')
df_uni
的样本数为110000。
这些代码已经运行了大约3个小时。
我发现CPU的使用率总是低于10%。所以我想我应该通过并行处理来优化这些代码。然后我发现一个名为pandarallel的python包可以以一种简单的方式并行处理groupby.apply()
。但它不支持Windows上的
所以我想知道是否有其他方法可以优化groupby.apply()
,这些代码和CPU使用率。
提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐