
当使用pandas series的`corr()`方法计算相关性时,若返回nan,通常是由于两个series的索引未对齐所致。pandas在计算前会尝试基于索引进行对齐,若无共同索引则产生nan。解决方案是通过`set_axis`方法强制series索引对齐,以获得正确的相关性结果,这与numpy在处理数组时不考虑索引的行为形成对比。
在数据分析中,计算两个序列之间的相关性是一项常见操作。Pandas库提供了方便的Series.corr()方法,但在某些情况下,该方法可能出人意料地返回NaN(Not a Number),即使数据本身看起来是有效的。本文将深入探讨这一现象的根本原因,并提供一个标准的解决方案。
考虑以下两个Pandas Series对象s1和s2,它们包含数值数据:
import pandas as pd
import numpy as np
# 示例数据
s1 = pd.Series([-0.443538, -0.255012, -0.582948, -0.393485, 0.430831,
0.232216, -0.014269, -0.133158, 0.127162, -1.855860],
name='s1')
s2 = pd.Series([-0.650857, -0.135428, 0.039544, 0.241506, -0.793352,
-0.054500, 0.901152, -0.660474, 0.098551, 0.822025],
index=range(29160, 29170), name='s2')
print("Series s1:")
print(s1)
print("\nSeries s2:")
print(s2)输出如下:
Series s1: 0 -0.443538 1 -0.255012 2 -0.582948 3 -0.393485 4 0.430831 5 0.232216 6 -0.014269 7 -0.133158 8 0.127162 9 -1.855860 Name: s1, dtype: float64 Series s2: 29160 -0.650857 29161 -0.135428 29162 0.039544 29163 0.241506 29164 -0.793352 29165 -0.054500 29166 0.901152 29167 -0.660474 29168 0.098551 29169 0.822025 Name: s2, dtype: float64
当我们尝试计算s1和s2的相关性时:
s1.corr(s2)
结果却是nan。
然而,如果使用NumPy的corrcoef函数对这些序列的底层数值进行计算,可以得到一个有效的结果:
np.corrcoef(s1, s2)[0][1]
输出:-0.4918385039519204。
这表明数据本身是具有相关性的,问题出在Pandas的corr()方法上。
Pandas的核心设计理念之一是“索引对齐”。当对两个或多个Pandas对象(如Series或DataFrame)执行操作时,Pandas会尝试根据它们的索引进行自动对齐。如果两个对象的索引没有共同的标签,或者共同标签下的数据类型不匹配,Pandas会用NaN填充缺失值。
会译·对照式翻译
会译是一款AI智能翻译浏览器插件,支持多语种对照式翻译
79
查看详情
在上述例子中,s1的索引是默认的0到9,而s2的索引是29160到29169。这两个Series的索引完全不重叠,没有任何共同的标签。当s1.corr(s2)被调用时,Pandas会尝试将s2对齐到s1的索引上。由于没有共同的索引,对齐后的s2将全部是NaN。两个包含NaN的序列进行相关性计算,结果自然就是NaN。
NumPy的np.corrcoef函数则不同,它处理的是纯粹的数值数组,不考虑Pandas的索引信息。它直接将两个Series的底层数值数组作为输入,因此能够正确计算出相关性。
要解决这个问题,我们需要在计算相关性之前,确保两个Series的索引是匹配的。最直接的方法是强制其中一个Series使用另一个Series的索引。Pandas提供了set_axis()方法来修改Series的轴标签(即索引)。
我们可以将s2的索引设置为与s1相同的索引:
# 强制s2使用s1的索引
aligned_s2 = s2.set_axis(s1.index)
print("\nAligned s2:")
print(aligned_s2)
# 再次计算相关性
correlation_result = s1.corr(aligned_s2)
print(f"\nCorrelation after alignment: {correlation_result}")输出:
Aligned s2: 0 -0.650857 1 -0.135428 2 0.039544 3 0.241506 4 -0.793352 5 -0.054500 6 0.901152 7 -0.660474 8 0.098551 9 0.822025 Name: s2, dtype: float64 Correlation after alignment: -0.49183852303556697
现在,我们得到了一个与NumPy结果非常接近的有效相关性值。
理解Pandas的索引对齐机制对于高效和准确地进行数据分析至关重要。通过正确处理索引,可以避免许多常见的陷阱,并确保你的计算结果是可靠的。
以上就是解决Pandas Series.corr返回NaN:深入理解索引对齐问题的详细内容,更多请关注其它相关文章!
# 递归
# 霸屏推广怎么操作网站
# 金华正规网站seo公司
# 却是
# 这一
# 这是
# 掩码
# 的是
# 未找到
# 根本原因
# 布尔
# 多维
# numpy函数
# 铜山区网站建设优势
# 广东网站建设的费用标准
# 电器网站优化排名
# 固原品牌营销推广招聘
# 手机端seo哪家好
# 门户网站建设趋势
# 恩施seo推广方案
# 怎么做企业网站优化经验
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
鸿蒙单条备忘录如何加密
学习通网页版个人登录_学习通网页版个人账户登录入口
PHP utf8_encode 字符编码转换陷阱与解决方案
快手网页版官方访问 快手网页版页面在线打开
《大周列国志》皇帝律令功能介绍
微博网页版入口链接 微博网页版在线互动平台
抖音猜你想搜能说明对方搜过吗
《绿竹漫游》关闭消息通知方法
Linux如何自动分析系统异常日志_Linux日志智能检测
冬季去哪个城市旅游更有可能观测到极光
PDF文件去水印平台入口 PDF水印删除网址
解决CSS布局中意外顶部空白问题的教程
江苏大剧院会员卡购买步骤
Keras中Convolution2D层及其核心辅助层详解
J*aScript装饰器_元编程实战
《随手记》启用语音备注方法
@Team是什么?揭秘团队含义
苹果自助维修计划支持哪些设备机型
mysql中如何分析索引使用情况_mysql索引使用分析方法
iPhone 14 Pro如何更改区域设置_iPhone 14 Pro地区语言修改教程
使用TinyButStrong生成HTML并结合Dompdf创建PDF教程
composer licenses 命令:如何检查项目依赖的许可证?
优化Google Charts Gauge:在数据库无数据时显示默认值
《原神》月之一版本新增书籍一览
如何测试您的网站全球打开速度-网站海外测速工
手机远程连接电脑方法
小米手机屏幕失灵乱跳怎么办 屏幕触控问题自检与临时解决方法【应急】
《七读免费小说》开通会员方法
使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式
发博客与长微博技巧
盲鳗善于分泌黏液猜猜主要用来做什么
狙击外星人小游戏在线链接_狙击外星人小游戏网页链接
铁路12306座位怎么选_12306官方选座操作方法
腾讯QQ邮箱官方入口 QQ邮箱网页版登录平台
Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件
CSS如何控制元素外边距_margin实现布局间隔
向日葵客户端怎么进行语音通话_向日葵客户端语音通话功能使用方法
12306售票时间最新规定 | 网上订票和车站窗口时间一样吗
VB表达式书写规则解析
sublime怎么快速在浏览器中预览HTML_sublime配置View in Browser教程
如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践
Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】
OPPO A3 WiFi频繁断开怎么办 OPPO A3网络优化技巧
嘀嗒顺风车如何开具电子发票
msn官方入口2025登录 msn官网2025直达首页入口
稻壳阅读器官方直达网址链接 稻壳阅读器文档阅读平台主页资源入口
mysql镜像配置如何设置用户权限组_mysql镜像配置用户组与权限分级管理方法
Golang如何使用log记录日志信息_Golang log日志记录方法总结
使用VS Code作为你的个人知识管理系统
J*aScript大数运算_BigInt使用指南
2025-11-20
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。