0

是否存在与 Python Pandas 相同的 Python Datatable 的等效 corr() 函数 - 以查找 Frame 列的相关矩阵?谢谢

4

1 回答 1

0

一种选择是使用以下功能:

def frame_corr(dt_frame):
    numcols = [col for col in dt_frame if col.type.is_numeric]
    result = dt.rbind([dt_frame[:, [dt.corr(col1, col2) for col2 in numcols]] for col1 in numcols])
    result.names = dt_frame[:,numcols].names
    return result

输入数据

data = dt.Frame(x = np.random.normal(size=10),
         y = np.random.normal(size=10),
         z = np.random.normal(size=10)
        )

输出

frame_corr(data)
   |         x          y          z
   |   float64    float64    float64
-- + ---------  ---------  ---------
 0 |  1         -0.880012   0.26132 
 1 | -0.880012   1         -0.440515
 2 |  0.26132   -0.440515   1       
[3 rows x 3 columns]

data.to_pandas().corr()
          x         y         z
x  1.000000 -0.880012  0.261320
y -0.880012  1.000000 -0.440515
z  0.261320 -0.440515  1.000000

注意:is_numeric在 1.1.0 版本中可用

于 2021-11-28T17:24:08.307 回答