我的原始数据帧的大小为4779657 (rows) and 26(columns)
。
请找到示例数据框的代码
df = pd.DataFrame({
'subject_id':[1,1,1,1,2,2,2,2,3,3,4,4,4,4,4],
'readings' : ['READ_1','READ_2','READ_1','READ_3','READ_1','READ_5','READ_6','READ_8','READ_10','READ_12','READ_11','READ_14','READ_09','READ_08','READ_07'],
'val' :[5,6,7,11,5,7,16,12,13,56,32,13,45,43,46],
})
示例数据帧如下所示
我想执行以下操作(从长到宽)。在26列(真实数据中)中,我试图使用3 columns in groupby
子句。谢谢@jezrael帮助我达到了这一水平
df1 = (df.groupby(['subject_id','readings'])['val']
.describe()
.unstack()
.swaplevel(0,1,axis=1)
.reindex(df['readings'].unique(), axis=1, level=0))
df1.columns = df1.columns.map('_'.join)
df1 = df1.reset_index()
上面的代码产生的输出如下图所示,与我的预期输出一致。唯一的问题是大型数据集的性能
已经超过半小时,代码仍在运行。我的系统信息是8 GB installed RAM
,处理器是Intel Core i5-2500 CPU@3.30 GHZ
,如果知道这仍然可以帮助您
您能帮我提高这段代码的效率吗?