含有nan的数据,计算pearson

如果使用pandas Series求Pearson的函数corr:

如果是相同位置是NAN,就无视这些NAN,用剩下的元素来计算Pearson。

如果是不同位置是NAN,就会计算得出NAN。

 

pandas DataFrame求Pearson的函数corrwith:

如果某一个向量中有某个位置是NAN,那就去掉两个向量的这个位置,用剩下的元素来计算Pearson。(和corr不同)

所以用corrwith需要检查两个dataframe是否是同样位置为NAN再计算:

assert (1-signal_list[0].isna() == y.isna()).sum().sum() == 0

要不然就是一笔糊涂账。

 

如果用np.corrcoef,直接出NAN:

 

posted @ 2022-11-20 22:08  乌蝇哥  阅读(214)  评论(0编辑  收藏  举报