有效地在Symmertic矩阵中创建数据框摘要?

时间:2019-02-11 00:45:58

标签: python pandas numpy

对于任何仅包含数值数据的给定数据框,我想创建一个方阵(尺寸等于列数)以总结每个单元格中的以下信息-每列的长度,元素的总和每列,元素的平方和,等等。

下面是我制作的当前代码,需要很长时间才能执行。我们可以提高效率吗?

def create_summary(df):
    col = df.columns.tolist()
    df_matrix = df.values
    l = len(col)
    x ={} 
    z={}                                                                 
    for i in range(l):
        z[i] = []
        for j in range(l):
            y= df_matrix[:,j]
            z= df_matrix[:,i]
            x[i,j] = np.array([])

             """
            This code makes calculations for all the basic elements in the table. They are appended to
            a lists of a dictionary.
            """

            x[i,j] = np.append(x[i,j], [len(z), z.sum(), (z**2).sum(),
                        len(y), y.sum(), (y**2).sum(), (z*y).sum(), ((z*y)**2).sum()] )
            z[i].append(x[j,i])


    result = pd.DataFrame(z, index=col)
    result.columns = col
    return(result)

0 个答案:

没有答案