pandas 数据分析 相关性_Pandas库学习笔记2-Pandas数据特征分析

本文介绍了Pandas库的数据排序方法,包括.sort_index()和.sort_values(),并展示了如何根据索引和数值进行排序。此外,还详细讲解了数据的统计分析,如.describe()、累计统计和滚动计算,以及如何计算数据的相关性和协方差。通过实例展示了如何使用这些方法进行数据分析。
摘要由CSDN通过智能技术生成

阿迪:Pandas库学习笔记1-Pandas库入门​zhuanlan.zhihu.com8bc1f5e57aa8b5345ad3918608395e48.png

数据的排序.sort_index()方法在指定轴上根据索引进行排序,默认升序、

.sort_index(axis=0,ascending=True)

In [69]: b

Out[69]:

0 1 2 3 4

c 0 1 2 3 4

a 5 6 7 8 9

d 10 11 12 13 14

b 15 16 17 18 19

In [70]: b.sort_index()

Out[70]:

0 1 2 3 4

a 5 6 7 8 9

b 15 16 17 18 19

c 0 1 2 3 4

d 10 11 12 13 14

In [71]: b.sort_index(ascending=False)

Out[71]:

0 1 2 3 4

d 10 11 12 13 14

c 0 1 2 3 4

b 15 16 17 18 19

a 5 6 7 8 9

In [72]: c=b.sort_index(axis=1,ascending=False)

In [73]: c

Out[73]:

4 3 2 1 0

c 4 3 2 1 0

a 9 8 7 6 5

d 14 13 12 11 10

b 19 18 17 16 15

In [74]: c.sort_index()

Out[74]:

4 3 2 1 0

a 9 8 7 6 5

b 19 18 17 16 15

c 4 3 2 1 0

d 14 13 12 11 10.sort_values()方法在指定轴上根据数值进行排序,默认升序

Series.sort_values(axis=0,ascending=True)

DataFrame.sort_values(by,axis=0,ascending=True)

by:axis轴上的某个索引或索引列表

In [75]: b

Out[75]:

0 1 2 3 4

c 0 1 2 3 4

a 5 6 7 8 9

d 10 11 12 13 14

b 15 16 17 18 19

In [76]: c=b.sort_values(2,ascending=False)

In [77]: c

Out[77]:

0 1 2 3 4

b 15 16 17 18 19

d 10 11 12 13 14

a 5 6 7 8 9

c 0 1 2 3 4

In [78]: c=c.sort_values('a',axis=1,ascending=False)

In [79]: c

Out[79]:

4 3 2 1 0

b 19 18 17 16 15

d 14 13 12 11 10

a 9 8 7 6 5

c 4 3 2 1 0

注:NaN统一放到排序末尾

数据的基本统计分析

适用于Series和DataFrame类型.describe() 针对0轴(各列)的统计汇总

.sum() 计算数据的总和,按0轴计算,下同

.count() 非NaN值的数量

.mean() .median() 计算数据的算术平均值、算术中位数

.var() .std() 计算数据的方差、标准差

.min() .max() 计算数据的最小值、最大值

适用于Series类型.argmin() .argmax() 计算数据最大值、最小值所在位置的索引位置(自动索引)

.idxmin() .idxmax() 计算数据最大值、最小值所在位置的索引(自定义索引)

对于Series对象

In [81]: a=pd.Series([9,8,7,6],index=['a','b','c','d'])

In [82]: a

Out[82]:

a 9

b 8

c 7

d 6

dtype: int64

In [83]: a.describe()

Out[83]:

count 4.000000

mean 7.500000

std 1.290994

min 6.000000

25% 6.750000

50% 7.500000

75% 8.250000

max 9.000000

dtype: float64

In [84]: type(a.describe())

Out[84]: pandas.core.series.Series

In [85]: a.describe()['count']

Out[85]: 4.0

In [86]: a.describe()['max']

Out[86]: 9.0

对于DataFrame对象

In [87]: b=pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b'])

In [88]: b.describe()

Out[88]:

0 1 2 3 4

count 4.000000 4.000000 4.000000 4.000000 4.000000

mean 7.500000 8.500000 9.500000 10.500000 11.500000

std 6.454972 6.454972 6.454972 6.454972 6.454972

min 0.000000 1.000000 2.000000 3.000000 4.000000

25% 3.750000 4.750000 5.750000 6.750000 7.750000

50% 7.500000 8.500000 9.500000 10.500000 11.500000

75% 11.250000 12.250000 13.250000 14.250000 15.250000

max 15.000000 16.000000 17.000000 18.000000 19.000000

In [89]: type(b.describe())

Out[89]: pandas.core.frame.DataFrame

In [90]: b.describe().loc['max']

Out[90]:

0 15.0

1 16.0

2 17.0

3 18.0

4 19.0

Name: max, dtype: float64

In [91]: b.describe()[2]

Out[91]:

count 4.000000

mean 9.500000

std 6.454972

min 2.000000

25% 5.750000

50% 9.500000

75% 13.250000

max 17.000000

Name: 2, dtype: float64

数据的累计统计分析

适用于Series和DataFrame类型cumsum() 依次给出前1、2、...、n个数的和

cumprod() 依次给出前1、2、...、n个数的积

cummax() 依次给出前1、2、...、n个数的最大值

cummin() 依次给出前1、2、...、n个数的最小值

In [93]: b

Out[93]:

0 1 2 3 4

c 0 1 2 3 4

a 5 6 7 8 9

d 10 11 12 13 14

b 15 16 17 18 19

In [94]: b.cumsum()

Out[94]:

0 1 2 3 4

c 0 1 2 3 4

a 5 7 9 11 13

d 15 18 21 24 27

b 30 34 38 42 46

In [95]: b.cumprod()

Out[95]:

0 1 2 3 4

c 0 1 2 3 4

a 0 6 14 24 36

d 0 66 168 312 504

b 0 1056 2856 5616 9576

In [96]: b.cummin()

Out[96]:

0 1 2 3 4

c 0 1 2 3 4

a 0 1 2 3 4

d 0 1 2 3 4

b 0 1 2 3 4

In [97]: b.cummax()

Out[97]:

0 1 2 3 4

c 0 1 2 3 4

a 5 6 7 8 9

d 10 11 12 13 14

b 15 16 17 18 19

滚动计算(窗口计算)rolling(w).sum() 依次计算相邻w个元素的和

rolling(w).mean() 依次计算相邻w个元素的算术平均值

rolling(w).var() 依次计算相邻w个元素的方差

rolling(w).std() 依次计算相邻w个元素的标准差

rolling(w).min() .max() 依次计算相邻w个元素的最小值和最大值

In [98]: b

Out[98]:

0 1 2 3 4

c 0 1 2 3 4

a 5 6 7 8 9

d 10 11 12 13 14

b 15 16 17 18 19

In [99]: b.rolling(2).sum()

Out[99]:

0 1 2 3 4

c NaN NaN NaN NaN NaN

a 5.0 7.0 9.0 11.0 13.0

d 15.0 17.0 19.0 21.0 23.0

b 25.0 27.0 29.0 31.0 33.0

In [100]: b.rolling(3).sum()

Out[100]:

0 1 2 3 4

c NaN NaN NaN NaN NaN

a NaN NaN NaN NaN NaN

d 15.0 18.0 21.0 24.0 27.0

b 30.0 33.0 36.0 39.0 42.0

数据的相关分析

相关性x增大,y增大,两个变量正相关

x增大,y减小,两个变量负相关

x增大,y无明显变化,两个变量不相关

协方差:

equation?tex=cov%28x%2Cy%29%3D%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%7B%28x_%7Bi%7D-%5Cbar%7Bx%7D%29%28y_%7Bi%7D-%5Cbar%7Bx%7D%29%7D%7D%7Bn-1%7D协方差>0,x和y正相关

协方差<0,x和y负相关

协方差=0,x和y独立无关

Pearson相关系数:

equation?tex=r%3D%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%7B%28x_%7Bi%7D-%5Cbar%7Bx%7D%29%28y_%7Bi%7D-%5Cbar%7By%7D%29%7D%7D%7B%5Csqrt%7B%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%7B%28x_%7Bi%7D-%5Cbar%7Bx%7D%29%5E%7B2%7D%7D%7D%5Csqrt%7B%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%7B%28y_%7Bi%7D-%5Cbar%7By%7D%29%5E%7B2%7D%7D%7D%7D0.8-1.0 极强相关

0.6-0.8 强相关

0.4-0.6 中等程度相关

0.2-0.4 弱相关

0.0-0.2 极弱相关或无相关.cov() 计算协方差矩阵

.corr() 计算相关系数矩阵,Pearson、Spearman、Kendall等系数

实例:房价增幅与m增幅的相关性

In [101]: hprice=pd.Series([3.04,22.93,12.75,22.6,12.33],index=['2008','2009','2010','2011','2012'])

In [102]: m=pd.Series([8.18,18.38,9.13,7.82,6.69],index=['2008','2009','2010','2011','2012'])

In [103]: hprice.corr(m)

Out[103]: 0.5239439145220387

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GeoPandas一个开源的Python,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值