pandas 是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的模型,提供了高效地操作大型数据集所需的工具。本文主要介绍pandas库实现描述性统计的调用方法。
本文数据选自于上篇爬取的杭州热门景点数据并做了筛选,将点评数<0的去除掉。
程序实现:
import pandas as pd
from scipy import stats
import numpy as np
df = pd.read_csv('/data1.csv')
#处理数据 进行字段清洗
df =df[df['点评数']>0]
df['星级指数'] = df['星级指数'].str.split(':').str[-1]
df['星级指数'] = df['星级指数'].str.split('%').str[0]
#将'星级指数', '点评数'列转换为数值型的来进行计算
df[['星级指数', '点评数']] = df[['星级指数', '点评数']].apply(pd.to_numeric)
df.dtypes #查看df数据类型
##集中趋势描述:
#最小值
a = df['星级指数'].min()
#最大值
b = df['星级指数'].max()
#描述统计
df['星级指数'].describe()
'''
评论星级指数
count 97.000000
mean 84.907216
std 18.708333
min 0.000000
25% 86.000000
50% 88.000000
75% 92.000000
max 100.000000
'''
#众数:需要用到stats的mode()方法
df['星级指数'].mode()[0] #Out: '86'
#中位数
df['星级指数'].median() #Out: 88.0
#平均数
#算术平均数
df['星级指数'].mean() #Out: 84.90721649484536
#加权平均数
np.average(df['星级指数'], weights=df['点评数']) #Out: 89.85838592908854
#几何平均数
pow(np.prod(df['星级指数']),1/len(df['星级指数'])) #0,由于存在0值
##离散程度描述:
#极差
int(df['星级指数'].max()) - int(df['星级指数'].min()) #Out: 100
#平均偏差
df['星级指数'].mad() #Out: 8.966308853225643
#方差
df['星级指数'].var() #Out: 350.00171821305827
#标准方差
df['星级指数'].std() #Out: 18.70833285498893
#四分位数
#25%分数
df['星级指数'].quantile(0.25)
#50%分数
df['星级指数'].quantile(0.5)
#75%分数
df['星级指数'].quantile(0.75)
##相对离散程度描述:
#变异系数
#偏态系数
df['星级指数'].skew() #Out: -3.9116492834291643
#峰态系数
df['星级指数'].kurt() #Out: 15.781432774173052
网友评论