在groupby中使用melt函数处理python中的大数据集

时间:2018-10-06 17:15:52

标签: python pandas-groupby melt

我有一个包含1782568个不同组的数据框。

所以,当我按分组级别融合数据时,我的内核卡住了。

因此,我决定按组分解数据,然后按顺序合并所有数据。

为此,我编写了以下函数。

def split(df,key):
    df2=pd.DataFrame() 
    for i in range(df[key].drop_duplicates().shape[0]):
        grp_key=tuple(df[key].drop_duplicates().iloc[i,:])
        df1=df.groupby(key,as_index=False).
            get_group(grp_key).reset_index().drop('index',axis=1)
        df2=df2.append(df1.groupby(key,as_index=False).
            apply(pd.melt,id_vars=key).reset_index()).dropna()
        df2=df2.drop(grep('level',df2.columns),axis=1)
    return(df2)

这里grep是我的用户定义函数,它在R中作为grep函数工作。

在df中,我将传递数据帧,在密钥中,我将传递列表格式的分组密钥。

但是该功能也花费大量时间来完成该过程。

任何人都可以帮助我提高性能。

谢谢。

0 个答案:

没有答案