如何解决从 scipy 执行 pearsonr() 相关性而忽略 NaN
我想关联 df1
和 df2
,它们的列名都相同 Length date(i)
。两个 data.frames 都有带有 NaN
的单元格。我想忽略这些单元格并跳过两个 data.frames 中的这一行。
measurements = 10
for i in range(1,measurements+1):
cor_len = pearsonr(df1['Length date(' + str(i) + ')'],df2['Length date(' + str(i) + ')'])
到目前为止我总是得到:
ValueError: 数组不能包含 infs 或 NaN
两个 df 看起来都像:
Length date(1) Length date(2) Length date(3) Length date(4) Length date(5) Length date(6)
8.512326 5.758995 39.743087 52.811855 75.285461 65.122357
18.852476 56.067361 93.113099 177.415235 184.472485 161.042771
92.391779 53.909429 76.507877 149.716421 147.524874 110.94987
NaN 21.220149 NaN NaN NaN NaN
NaN 27.559950 NaN NaN NaN NaN
解决方法
此解决方案效果很好:
for i in range(1,measurements+1):
xl = dfr['Length date(' + str(i) + ')'].dropna()
yl = df['Length date(' + str(i) + ')'].dropna()
dl = pd.concat([xl,yl],axis = 1)
dl = dl.dropna()
cor_len = dl.corr()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。