# 导入相关库
import numpy as np
import pandas as pd

统计函数

  最常见的计算工具莫过于一些统计函数了。首先构建一个包含了用户年龄与收入的 DataFrame

index = pd.Index(data=["Tom", "Bob", "Mary", "James", "Andy", "Alice"], name="name")
data = {
"age": [18, 40, 28, 20, 30, 35],
"income": [1000, 4500 , 1800, 1800, 3000, np.nan],
}
df = pd.DataFrame(data=data, index=index)
df
"""
    age income
name
Tom 18 1000.0
Bob 40 4500.0
Mary 28 1800.0
James 20 1800.0
Andy 30 3000.0
Alice 35   NaN
"""

协方差

# 计算年龄与收入之间的协方差,计算的时候会丢弃缺失值
df.age.cov(df.income)

相关系数

  默认情况下  corr  计算相关性时用到的方法是  pearson ,当然了你也可以指定  kendall  或 spearman

# 计算年龄与收入之间的相关性,计算的时候会丢弃缺失值
df.age.corr(df.income) # 0.944165089513402
df.age.corr(df.income, method="kendall") # 0.9486832980505137
df.age.corr(df.income, method="spearman") # 0.9746794344808964

数据的排名

  通过 rank 函数求出数据的排名顺序,如果有相同的数,默认取其排名的平均值作为值。

# 根据income排名,如果有相同的数,默认取其排名的平均值作为值
df.income.rank()
# 设置参数来得到不同的结果。可以设置的参数有: min 、 max 、 first 、 dense
df.income.rank(method="first")

窗口函数

  有的时候,我们需要对不同窗口中的数据进行一个统计,常见的窗口类型为时间窗口

  例如,某个餐厅 7 天的营业额,我们想要计算每两天的收入总额

data = {
"turnover": [12000, 18000, np.nan, 12000, 9000, 16000, 18000],
"date": pd.date_range("2019-10-01", periods=7)
}
df2 = pd.DataFrame(data=data)

.rolling ()得一个结果  

  通过 rolling 实现,设置 window=2 来保证窗口长度为 2,设置 on="date" 来保证根据日期这一列来滑动窗口

df2.rolling(window=2, on="date").sum() 

  上面运行结果有很多是缺失值,导致这个结果的原因是因为在计算时,窗口中默认需要的最小数据个数与窗口长度一致,这里可以设置 min_periods=1 来修改下

df2.rolling(window=2, on="date", min_periods=1).sum() 

  计算每段时间的累加和

# 1. 通过 rolling 实现
df2.rolling(window=len(df2), on="date", min_periods=1).sum()
# 2. 直接使用 expanding 来生成窗
df2.expanding(min_periods=1)["turnover"].sum()

函数的方法与描述  

  除了可以使用 sum 函数外,还有很多其他的函数可以使用,如:count、mean、median、min、max、std、var、quantile、apply、cov、corr 等等

.agg() 得多个结果

  不过上面的方式只能生成一个结果,如果想要同时求出多个结果(如求和和均值),可以借助 agg 函数可以快速实现

df2.rolling(window=2, min_periods=1)["turnover"].agg([np.sum, np.mean])

  如果传入一个字典,可以为生成的统计结果重命名

df2.rolling(window=2, min_periods=1)["turnover"].agg({"tur_sum": np.sum, "tur_mean": np .mean})

Pandas 计算工具介绍的更多相关文章

  1. Pandas系列(七)-计算工具介绍

    内容目录 1. 统计函数 2. 窗口函数 3. 加深加强 数据准备 # 导入相关库 import numpy as np import pandas as pd #Pandas 中包含了非常丰富的计算 ...

  2. Linux性能工具介绍

    l  Linux性能工具介绍 p  CPU高 p  磁盘I/O p  网络 p  内存 p  应用程序跟踪 l  操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l  应用程序的性能问题/功能问 ...

  3. Android系统性能调优工具介绍

    http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...

  4. [原创]Java静态代码检查工具介绍

    [原创]Java静态代码检查工具介绍 一  什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...

  5. LineCalc,一个基于Lex&Yacc的简单行计算工具

    LineCalc是基于Lex&Yacc的一个简单的行计算工具,支持常见的运算符和部分POSIX中定义于math.h中的数学函数:同时,LineCalc还提供了一个简单的错误处理模块,能检测公式 ...

  6. python接口自动化(四)--接口测试工具介绍(详解)

    简介 “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进行接口测试,能够提供 ...

  7. IPerf——网络测试工具介绍与源码解析(4)

    上篇随笔讲到了TCP模式下的客户端,接下来会讲一下TCP模式普通场景下的服务端,说普通场景则是暂时不考虑双向测试的可能,毕竟了解一项东西还是先从简单的情况下入手会快些. 对于服务端,并不是我们认为的直 ...

  8. Base64图片编码原理,base64图片工具介绍,图片在线转换Base64

    Base64图片编码原理,base64图片工具介绍,图片在线转换Base64 DataURI 允许在HTML文档中嵌入小文件,可以使用 img 标签或 CSS 嵌入转换后的 Base64 编码,减少  ...

  9. python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍

    python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍 IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.pycharm免费社区版.Su ...

随机推荐

  1. 快学Scala 第五课 (构造映射,获取映射值,更新映射值,迭代映射,与Java互操作)

    构造映射: val score = Map[String, Int]() val score1 = HashMap[String, Int]() val value1 = Map[String, In ...

  2. Android资源管理利器Resources和AssetManager

    前言  : Android工程在运行的时候往往需要引用资源.使用 Resources 来获取 res 目录下的各种与设备相关的资源.而使用 AssetManager 来获取 assets 目录下的资源 ...

  3. 用js做数字字母混合的随机四位验证码

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. cocos2d-x C++ 工程初探

    经过较为繁琐的环境搭建后,我们终于运行出了一个helloworld窗口,可以正式上手cocos了 现在我们就从改代码开始玩起 窗口 我们之前讲到AppDelegate类是程序的入口,所以和窗口有关的设 ...

  5. BZOJ 4621: Tc605

    Description 最初你有一个长度为 N 的数字序列 A.为了方便起见,序列 A 是一个排列. 你可以操作最多 K 次.每一次操作你可以先选定一个 A 的一个子串,然后将这个子串的数字全部变成原 ...

  6. Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝

    Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝ 教程 Xadmin安装方法: settings.py 的配置

  7. 【Python3爬虫】我爬取了七万条弹幕,看看RNG和SKT打得怎么样

    一.写在前面 直播行业已经火热几年了,几个大平台也有了各自独特的“弹幕文化”,不过现在很多平台直播比赛时的弹幕都基本没法看的,主要是因为网络上的喷子还是挺多的,尤其是在观看比赛的时候,很多弹幕不是喷选 ...

  8. 想转行做程序员,目前想学WEB前端,想问该自学还是报培训班

    首先我们还是先看一下WEB前端目前的工资情况吧,我在IT招聘网站拉勾网来进行搜索1-3年WEB前端工作经验大专学历的条件来看. 深圳: 可以看出目前深圳的平均的工资都在10K以上,因为大城市给的机会多 ...

  9. 域渗透基础之Kerberos认证协议

     本来昨晚就该总结整理,又拖到今天早上..6点起来赶可还行 0x01 Kerberos前言 Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议.它旨在通过使用密钥加密技术为客 ...

  10. AWD攻防工具脚本汇总(一)

    最近工作很忙 今天抽空准备下AWD比赛得攻防工具和脚本 以下只是常用 希望下周不被吊锤~~ 后续整理后想抽空写成一个攻击框架汇总放github~~ 这里从各种情景和需求中去总结工具和脚本的使用   情 ...