数据分析实战一——探索数据
2020-06-09 本文已影响0人
粉红狐狸_dhf
1.导入包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
2.加载数据
data1=pd.read_excel('E:\jupyter_lab\leetcode\数据分析实战\chapter3\data\catering_sale.xls',index_col='日期')
data1.head()
1.png
3.绘制箱线图data.boxplot()
boxplot方法只是用于DataFrame,return_type='dict'
whiskers: 延伸到不大于异常值的点的垂线
caps: 边界线
fliers: 所有的异常值点
means: 代表均值的点或者线
plt.figure()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
p=data1.boxplot(return_type='dict')
x=p['fliers'][0].get_xdata()
y=p['fliers'][0].get_ydata()
y=np.sort(y)
for i in range(len(x)):
# 处理临界情况, i=0时
temp = y[i] - y[i - 1] if i != 0 else -78 / 3
# 添加注释, xy指定标注数据,xytext指定标注的位置(所以需要特殊处理)
plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i] + 0.05 - 0.8 / temp, y[i]))
plt.show()
2.png
4计算统计量data.describe()
方差
(每个样本-均值)的平方的累加和除以总数 反应个体与均值的偏离程度
标准差(std)=方差开根号
statistics['std']计算的是n-1样本标准差,numpy计算的是n总体标准差,在数据量较大时,推荐使用numpy
CV(Coefficient of Variance) 变异系数:
变异系数又称“标准差率”,是衡量资料中各观测值变异程度的另一个统计量.
当进行两个或多个资料变异程度的比较时,如果度量单位与平均数相同,可以直接利用标准差来比较.如果单位和(或)平均数不同时,比较其变异程度就不能采用标准差,而需采用标准差与平均数的比值(相对值)来比较.
data = data1[(data1['销量'] > 400) & data1['销量'] < 5000]
statistics = data.describe()['销量']
#极差
statistics['range'] = statistics['max'] - statistics['min']
#变异系数
statistics['var'] = statistics['std'] / statistics['mean']
#四分位距
statistics['dis'] = statistics['75%'] - statistics['25%']
print(statistics)
4.png
5盈利图data.plot(kind='bar')
比例计算data.cumsum()/data.sum(),累加求和cumsum()。
data2=pd.read_excel('E:\jupyter_lab\leetcode\数据分析实战\chapter3\data\catering_dish_profit.xls',index_col='菜品名')
data2.head()
3.png
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.figure()
data.plot(kind='bar')
plt.ylabel('盈利(元)')
p = 1.0 * data.cumsum() / data.sum()
p.plot(color='r',secondary_y=True, style='-o', linewidth=2)
plt.annotate(
format(p[6], '.4%'),
xy=(6, p[6]),
xytext=(6 * 0.9, p[6] * 0.9),
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
plt.ylabel(u'盈利(比例)')
plt.show()
5.png
6计算成对相关性
data.corr()-->dataframe中相互之间的相关性
data.corr()['百合酱蒸凤爪'] -->dataframe某一项与其他项的相关性
data3=pd.read_excel('E:\jupyter_lab\leetcode\数据分析实战\chapter3\data\catering_sale_all.xls',index_col='日期')
data3.head()
6.png
data3.corr()
7.png
data3.corr()[''百合酱蒸凤爪']
相关性表中[''百合酱蒸凤爪']列。
8.png
data3['百合酱蒸凤爪'].corr(data3['翡翠蒸香茜饺'])
['百合酱蒸凤爪']与['翡翠蒸香茜饺']的相关性。
9.png