几组数据的相关性python_python数据分析中的相关性和协方差

相关性和协方差

相关性和协方差是两个重要的统计量,pandas计算这两个量的函数分别是corr( )和cov( )。这两个量的计算通常涉及两个Series对象。

e1fe9925bc315c603cb5a73f80a54617485477d2.png?token=80605efc514ce02b32bfbdb6c67ec32c&s=6BC21366CFA4BF704CF9DD060300A0C1

另外一种情况是,计算单个DataFrame对象的相关性和协方差,返回两个新DataFrame对象形式的矩阵。

caef76094b36acaf6cf8396c71cd001401e99c1a.png?token=7baffff046a3ffbce0941437c1e5b499&s=2BC213669BE4A9705EF51C060300E0C1

4034970a304e251ff6436b6daa9244137e3e5383.png?token=327f172afac68b44b56b52e059fcd250&s=6BC2136757E4AD495E51BC020300A081

用corrwith( )方法可以计算DataFrame对象的列或行与Series对象或其他DataFrame对象元素两两之间的相关性。

NaN数据

由前几节可知,补上缺失的数据很容易,它们在数据结构中用NaN来表示,以便于识别。在数据分析过程中,有些元素在某个数据结构中没有定义,这种情况很常见。

pandas意在更好地管理这种可能出现的情况。事实上,这一节我们将讲解缺失值的处理方法,这样很多问题就可以避免。比如,pandas库在计算各种描述性统计量的时候,并没有将NaN值考虑在内。

为元素赋NaN值

有时需要为数据结构中的元素赋NaN值,这时用NumPy的np.NaN(或np.nan)即可。

d6ca7bcb0a46f21fb395f0d6f930e6640d33aeae.png?token=c7c8034853d8e166f7def91e68c00b6f&s=6BC213665AE0A36C0CF5D40F0300E0C1

过滤NaN

数据分析过程中,有几种去除NaN的方法。然而,若要人工逐一删除NaN元素很麻烦,也很不安全,因为无法确保删除了所有的NaN。而dropna( )函数可以帮我们解决这个问题。

7e3e6709c93d70cfcc72b15df5c85c04bba12bea.png?token=96a92dbf06619bd7b403a90799ae6598&s=6BC21366FAE2FF7C0C7DD40F0300E0C1

另一种方法是,用notnull( )函数作为选取元素的条件,实现直接过滤。

b999a9014c086e06240147950e1cf6f00bd1cb5f.png?token=a9952e803fdcc0c33307dc575a5f50ef&s=69C213671AE88F740C51D40F0300A0C1

DataFrame处理起来要稍微复杂点。如果对这类对象使用dropna( )方法,只要行或列有一个NaN元素,该行或列的全部元素都会被删除。

91ef76c6a7efce1b4d7adf51a1457edab58f65f4.png?token=96f85a20dc8e82bd970cd654a6a61fff&s=6BC21366DFE099604CF9DC0F0300E0C1

因此,为了避免删除整行或整列,需要用how选项,指定其值为all,告知dropna( )函数只删除所有元素均为NaN的行或列。

14ce36d3d539b600e9a5d541e544b82ec75cb7f2.png?token=025cda231e3f2d0b301ef89979f8eb00&s=6BC213669FACAD721CF9D40F0300E0C1

为NaN元素填充其他值

删除NaN元素,可能会删除跟数据分析相关的其他数据,所以与其冒着风险去过滤NaN元素,不如用其他数值替代NaN。fillna( )函数能够满足大多数需要。这个函数以替换NaN的元素作为参数。所有NaN值都可以替换为同一个元素,如下所示:

4034970a304e251fe09679caaa9244137f3e53b3.png?token=1f4ffe48cd051ae3f07c5e2ce00afcb7&s=E8E23367DEECBB725C59B40F0300E0C0

或者,若要将不同列的NaN替换为不同的元素,依次指定列名称及要替换成的元素即可。

8d5494eef01f3a291da22d11953131355d607c9b.png?token=1c9947d5efe4b368925a56237ce75824&s=6BC21366DBACBF700CF1F40F0300A0C1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值