数据探索
3.1数据质量分析
1、使用pandas读取excel中的数据,并使用describe()函数 查看数据的基本情况
import pandas as pd
catering_sale='data/catering_sale.xls'
data=pd.read_excel(catering_sale,index_col=u'日期')#返回值DataFrame or dict of DataFrames
print(data)
print(data.describe())
2、餐饮销售额数据异常值检测的代码
画箱线图
import pandas as pd
import matplotlib.pyplot as plt
import pprint
catering_sale='data/catering_sale.xls'
data=pd.read_excel(catering_sale,index_col=u"日期")
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
#rcParams().....>rc是resouse configuration的缩写
plt.figure()
p=data.boxplot(return_type='dict')#datat.boxplot()//直接使用DataFrame,画箱线图
x = p['fliers'][0].get_xdata()#'flies'异常值标签
y = p['fliers'][0].get_ydata()
y.sort()
for i in range(len(x)):
if i>0:
plt.annotate(y[i],xy=(x[i],y[i]),xytext=[x[i]+0.05-0.8/(y[i]-y[i-1]),y[i]])
#参数分别代表,注释的内容、注释那一个点、放置注释的位置
else:
plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i]))
plt.show()
3.2数据的统计量分析
1、集中趋势度量
均值、中位数、众数
2、离中趋势度量
极差、标准差、变异系数、四分位数间距
3、代码3-2 餐饮数据销量数据统计量分析代码
import pandas as pd
import matplotlib.pyplot as plt
import pprint
catering_sale='data/catering_sale.xls'
data=pd.read_excel(catering_sale,index_col=u"日期")
data=data[(data[u'销量']>400)&(data[u'销量']<5000)]
statistics=data.describe()
statistics.loc['range']=statistics.loc['max']-statistics.loc['min']
statistics.loc['var']=statistics.loc['std']-statistics.loc['mean']
statistics.loc['dis']=statistics.loc['75%']-statistics.loc['25%']
print(statistics)
3、数据的贡献度分析
又称为帕累托分析
import pandas as pd
import matplotlib.pyplot as plt
dish_frofit='data/catering_dish_profit.xls'
data=pd.read_excel(dish_frofit,index_col=u'菜品名')
data=data[u'盈利'].copy()
data.sort_values(ascending=False)
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.figure()
data.plot(kind='bar')
plt.ylabel(u'盈利(元)')
p=1.0*data.cumsum()/data.sum()#cumsum()求累加和
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()
4、数据的相关性分析
import pandas as pd
catering_sale='data/catering_sale_all.xls'
data=pd.read_excel(catering_sale,index_col=u'日期')
#corr()计算相关系数
print(data.corr())
print(data.corr()[u'百合酱蒸凤爪'])#只显示该菜品与其他所有菜品的相关系数
print(data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺']))
5、python主要数据探索函数
pandas主要的统计特征函数:
sum()-----------------------------------------------------------求和
mean()------------------------------------------------------算术平均数
var()---------------------------------------------------------方差
std()----------------------------------------------------------标准差
correct()-----------------------------------------------------pearson(或者 ‘kendall’, ‘spearman’)相关系数
cov()----------------------------------------------------------协方差矩阵
skew()--------------------------------------------------------样本值的偏度(三阶矩)
kurt()----------------------------------------------------------样本值的峰度(四阶矩)
describe()----------------------------------------------------给出样本的基本描述===========================================================
cumsum()-----------------------------------------------------依次给出前1,2,3…n个数的和
cumprod()-----------------------------------------------------依次给出前1,2,3…n个数的积
cummax()------------------------------------------------------依次给出前1,2,3…n个数的最大值
cummin()-------------------------------------------------------依次给出前1,2,3…n个数的最小值rolling_系列是pandas的函数,不是DataFrame或Series对象的方法===================
rolling_sum()--------------------------------------------------计算样本数据总和(按列计算)
rolling_mean()------------------------------------------------数据样本的算术平均数
rolling_var()----------------------------------------------------方差
rolling_std------------------------------------------------------标准差
rolling_corr()---------------------------------------------------相关系数
rolling_cov()-----------------------------------------------------协方差
rolling_skew()--------------------------------------------------偏度
rolling_kurt()----------------------------------------------------峰度主要统计作图函数===
plot()----------------------------------------------------------绘制线性二维图,折线图
pie()-----------------------------------------------------------绘制饼型图
hist()----------------------------------------------------------直方图
boxplot()----------------------------------------------------箱型图
plot(logy=True)-------------------------------------------绘制y轴的对数图形
plot(yerr=error)-------------------------------------------绘制误差条形图