Python数据分析与展示:pandas库统计分析函数-13

简介: Python数据分析与展示:pandas库统计分析函数-13

基本的统计分析函数

适用于Series和DataFrame类型

方法

说明

.sum()

计算数据的总和,按0轴计算,下同

.count()

非NaN值的数量

.mean() .median()

计算数据的算术平均值、算术中位数

.var() .std()

计算数据的方差、标准差

.min().max()

计算数据的最小值、最大值

.describe()

针对0轴(各列)的统计汇总


适用于Series类型

方法

说明

.argmin() .argmax()

计算数据最大值、最小值所在位置的索引位置(自动索引)

.idxmin() .idxmax()

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


数据的累计统计分析

适用于Series和DataFrame类型,累计计算

方法

说明

.cumsum()

依次给出前1、2、…、n个数的和

.cumprod()

依次给出前1、2、…、n个数的积

.cummax()

依次给出前1、2、…、n个数的最大值

.cummin()

依次给出前1、2、…、n个数的最小值


适用于Series和DataFrame类型,滚动计算(窗口计算)

方法

说明

.rolling(w).sum()

依次计算相邻w个元素的和

.rolling(w).mean()

依次计算相邻w个元素的算术平均值

.rolling(w).var()

依次计算相邻w个元素的方差

.rolling(w).std()

依次计算相邻w个元素的标准差

.rolling(w).min() .max()

依次计算相邻w个元素的最小值和最大值

数据的相关性分析

两个事物,表示为X和Y,如何判断它们之间的存在相关性?


相关性

•X增大,Y增大,两个变量正相关

•X增大,Y减小,两个变量负相关

•X增大,Y无视,两个变量不相关


协方差

•协方差>0, X和Y正相关

•协方差<0, X和Y负相关

•协方差=0, X和Y独立无关


pearson相关系数

0.8‐1.0 极强相关

•0.6‐0.8 强相关

•0.4‐0.6 中等程度相关

•0.2‐0.4 弱相关

•0.0‐0.2 极弱相关或无相关

r取值范围[‐1,1]


适用于Series和DataFrame类型


方法

说明

.cov()

计算协方差矩阵

.corr()

计算相关系数矩阵, Pearson、Spearman、Kendall等系数


pandas数据特征分析小结

一组数据的摘要

方法

说明

排序

.sort_index() .sort_values()

基本统计函数

.describe()

累计统计函数

.cum*() .rolling().*()

相关性分析

.corr() .cov()


代码实例

# -*- coding: utf-8 -*-
# @File    : pandas_func.py
# @Date    : 2018-05-20
# pandas基本的统计分析函数
import pandas as pd
import numpy as np
# Series对象
s = pd.Series([9, 8, 7, 6], index=["a", "b", "c", "d"])
print(s)
"""
a    9
b    8
c    7
d    6
dtype: int64
"""
# 数据概要
print(s.describe())
"""
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
"""
# 类型
print(type(s.describe()))
# <class 'pandas.core.series.Series'>
# 从概要中取数据
print(s.describe()["count"])
# 4.0
print(s.describe()["max"])
# 9.0
# DataFrame对象
fd = pd.DataFrame(np.arange(12).reshape(3, 4), index=["a", "b", "c"])
print(fd)
"""
   0  1   2   3
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
"""
# 概要
print(fd.describe())
"""
         0    1     2     3
count  3.0  3.0   3.0   3.0
mean   4.0  5.0   6.0   7.0
std    4.0  4.0   4.0   4.0
min    0.0  1.0   2.0   3.0
25%    2.0  3.0   4.0   5.0
50%    4.0  5.0   6.0   7.0
75%    6.0  7.0   8.0   9.0
max    8.0  9.0  10.0  11.0
"""
# 类型
print(type(fd.describe()))
# <class 'pandas.core.frame.DataFrame'>
# 取出列概要信息
print(fd.describe()[2])
"""
count     3.0
mean      6.0
std       4.0
min       2.0
25%       4.0
50%       6.0
75%       8.0
max      10.0
Name: 2, dtype: float64
"""
# 获取行
print(fd.describe().ix["count"])
"""
0    3.0
1    3.0
2    3.0
3    3.0
Name: count, dtype: float64
"""
# 数据的累计统计分析
print(fd)
"""
   0  1   2   3
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
"""
# 依次给出前1、2、…、n个数的和
print(fd.cumsum())
"""
    0   1   2   3
a   0   1   2   3
b   4   6   8  10
c  12  15  18  21
"""
# 依次给出前1、2、…、n个数的积
print(fd.cumprod())
"""
   0   1    2    3
a  0   1    2    3
b  0   5   12   21
c  0  45  120  231
"""
# 依次给出前1、2、…、n个数的最大值
print(fd.cummax())
"""
   0  1   2   3
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
"""
# 依次给出前1、2、…、n个数的最小值
print(fd.cummin())
"""
   0  1  2  3
a  0  1  2  3
b  0  1  2  3
c  0  1  2  3
"""
print(fd)
"""
   0  1   2   3
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
"""
# 相邻2个数求和
print(fd.rolling(2).sum())
"""
      0     1     2     3
a   NaN   NaN   NaN   NaN
b   4.0   6.0   8.0  10.0
c  12.0  14.0  16.0  18.0
"""
# 相邻3个数求和
print(fd.rolling(3).sum())
"""
      0     1     2     3
a   NaN   NaN   NaN   NaN
b   NaN   NaN   NaN   NaN
c  12.0  15.0  18.0  21.0
"""
# 实例,房价增幅与M2增幅的相关性
hprice = pd.Series([3.04, 22.93, 12.75, 22.6, 12.33],
                   index=["2008", "2009", "2010", "2011", "2012"])
m2 = pd.Series([8.18, 18.38, 9.13, 7.82, 6.69],
               index=["2008", "2009", "2010", "2011", "2012"])
print(hprice.corr(m2))
# 0.5239439145220387
"""
## pearson相关系数
0.8‐1.0 极强相关 
•0.6‐0.8 强相关 
•0.4‐0.6 中等程度相关 
•0.2‐0.4 弱相关 
•0.0‐0.2 极弱相关或无相关
"""
# 绘制成图
from matplotlib import pyplot as plt
plt.plot(hprice)
plt.plot(m2)
plt.savefig("price", dpi=600)
plt.show()

a16.1.png



相关文章
|
12天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
46 4
|
12天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
24 2
|
13天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
31 2
|
13天前
|
Python
Pandas 常用函数-数据合并
Pandas 常用函数-数据合并
30 1
|
11天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
11天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
13天前
|
BI Python
Pandas 常用函数-数据统计和描述
Pandas 常用函数-数据统计和描述
37 0
|
13天前
|
Python
Pandas 常用函数-数据选择和过滤
Pandas 常用函数-数据选择和过滤
10 0
|
13天前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
80 2