如何在Python中并行groupby操作?

2024-04-19 11:52:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大小为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],
})

示例数据帧如下所示

enter image description here

我想执行以下操作(从长到宽)。在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()

上面的代码生成如下所示的输出,它与我的预期输出一致。唯一的问题是在大数据集上的性能

enter image description here

已经半个多小时了,代码还在运行。我的系统信息是8 GB installed RAM,处理器是Intel Core i5-2500 CPU@3.30 GHZ,如果知道这一点会有所帮助的话

你能帮我提高代码的效率吗?你知道吗


Tags: columnsand数据代码id示例dfread