python常用统计量的计算

简介: python常用统计量的计算
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 27 09:19:25 2017
@author: yunjinqi 
E-mail:yunjinqi@qq.com 
Differentiate yourself in the world from anyone else.
"""
import pandas as pd  
import scipy.stats as sts  
import numpy as np
#葛洲坝
df=pd.read_excel('C:/Users/HXWD/Desktop/600068.xlsx')  
df.head()  
############################################计算数据的基本统计量:均值,方差,偏度,峰度等  
index=list(df.columns)
stock068=[]
for i in range(1,4):
    scores=np.array(df.ix[::,i])    
    pe=df.ix[::,i].describe()
    pe.name='葛洲坝'+index[i]
    print(pe)
    pe['偏度']=sts.skew(scores)
    pe['峰度']=sts.kurtosis(scores)
    stock068.append(pe)
stock068=pd.DataFrame(stock068).T
print (stock068)
#海澜之家
df=pd.read_excel('C:/Users/HXWD/Desktop/600398.xlsx')  
df.head()  
############################################计算数据的基本统计量:均值,方差,偏度,峰度等  
index=list(df.columns)
stock398=[]
for i in range(1,4):
    scores=np.array(df.ix[::,i])    
    pe=df.ix[::,i].describe()
    pe.name='海澜之家'+index[i]
    print(pe)
    pe['偏度']=sts.skew(scores)
    pe['峰度']=sts.kurtosis(scores)
    stock398.append(pe)
stock398=pd.DataFrame(stock398).T
print (stock398)
#data=pd.concat([stock068,stock398],axis=1, join_axes=[data.index])
data=stock068.join(stock398)
print (data)
data.to_csv('统计.csv')

#常用统计量的计算


#2018.01.16重新回来看峰度的计算,发现sts.kurtosis(),df.kurt()两个计算均存在某些问题,与eviews的描述性统计结果不一致,可能是计算口径不同。借用一篇别人编写纯代码计算的公式,得到了和eviews一样的结果,代码如下

import math
def calc(data):
    n = len(data)
    niu = 0.0
    niu2 = 0.0
    niu3 = 0.0
    for a in data:
        niu += a
        niu2 += a**2
        niu3 += a**3
    niu/= n   #这是求E(X)
    niu2 /= n #这是E(X^2)
    niu3 /= n #这是E(X^3)
    sigma = math.sqrt(niu2 - niu*niu) #这是D(X)的开方,标准差
    return [niu,sigma,niu3] #返回[E(X),标准差,E(X^3)]
def calc_stat(data):
    [niu,sigma,niu3] = calc(data)
    n = len(data)
    niu4 = 0.0
    for a in data:
        a -= niu
        niu4 += a ** 4
    niu4 /= n   
    skew = (niu3 - 3*niu*sigma**2 - niu**3)/(sigma**3)
    kurt =  niu4/(sigma**4)
    return [niu,sigma,skew,kurt] #返回了均值,标准差,偏度,峰度


建议计算峰度的程序使用下面的代码

目录
相关文章
|
1月前
|
Python
【10月更文挑战第10天】「Mac上学Python 19」小学奥数篇5 - 圆和矩形的面积计算
本篇将通过 Python 和 Cangjie 双语解决简单的几何问题:计算圆的面积和矩形的面积。通过这道题,学生将掌握如何使用公式解决几何问题,并学会用编程实现数学公式。
164 60
|
23天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
56 3
|
1月前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
41 3
|
1月前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
64 1
|
1月前
|
机器学习/深度学习 移动开发 Python
【10月更文挑战第11天】「Mac上学Python 22」小学奥数篇8 - 排列组合计算
本篇将通过 Python 和 Cangjie 双语讲解如何计算排列与组合。这道题目旨在让学生学会使用排列组合公式解决实际问题,并加深对数学知识和编程逻辑的理解。
65 4
|
1月前
|
数据可视化 Python
【10月更文挑战第12天】「Mac上学Python 23」小学奥数篇9 - 基础概率计算
本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。
52 1
|
1月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
44 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
1月前
|
存储 自然语言处理 数据处理
使用Python计算多个集合的交集详解
使用Python计算多个集合的交集详解
43 1
|
1月前
|
Python
使用python计算两个日期之前的相差天数,周数
使用python计算两个日期之前的相差天数,周数
39 0
|
1月前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
64 0
下一篇
无影云桌面