相关性和协方差
相关性和协方差是两个重要的统计量,pandas计算这两个量的函数分别是corr( )和cov( )。这两个量的计算通常涉及两个Series对象。
另外一种情况是,计算单个DataFrame对象的相关性和协方差,返回两个新DataFrame对象形式的矩阵。
用corrwith( )方法可以计算DataFrame对象的列或行与Series对象或其他DataFrame对象元素两两之间的相关性。
NaN数据
由前几节可知,补上缺失的数据很容易,它们在数据结构中用NaN来表示,以便于识别。在数据分析过程中,有些元素在某个数据结构中没有定义,这种情况很常见。
pandas意在更好地管理这种可能出现的情况。事实上,这一节我们将讲解缺失值的处理方法,这样很多问题就可以避免。比如,pandas库在计算各种描述性统计量的时候,并没有将NaN值考虑在内。
为元素赋NaN值
有时需要为数据结构中的元素赋NaN值,这时用NumPy的np.NaN(或np.nan)即可。
过滤NaN
数据分析过程中,有几种去除NaN的方法。然而,若要人工逐一删除NaN元素很麻烦,也很不安全,因为无法确保删除了所有的NaN。而dropna( )函数可以帮我们解决这个问题。
另一种方法是,用notnull( )函数作为选取元素的条件,实现直接过滤。
DataFrame处理起来要稍微复杂点。如果对这类对象使用dropna( )方法,只要行或列有一个NaN元素,该行或列的全部元素都会被删除。
因此,为了避免删除整行或整列,需要用how选项,指定其值为all,告知dropna( )函数只删除所有元素均为NaN的行或列。
为NaN元素填充其他值
删除NaN元素,可能会删除跟数据分析相关的其他数据,所以与其冒着风险去过滤NaN元素,不如用其他数值替代NaN。fillna( )函数能够满足大多数需要。这个函数以替换NaN的元素作为参数。所有NaN值都可以替换为同一个元素,如下所示:
或者,若要将不同列的NaN替换为不同的元素,依次指定列名称及要替换成的元素即可。