# -*- coding: utf-8 -*-
"""
Created on Mon Jun 24 11:00:09 2019
@author: User
"""
# 《Python数据分析基础》中国统计出版社
import numpy as np
from scipy import stats
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
myfont=FontProperties(fname='data\msyh.ttc')
dc_sales = pd.read_csv(u'data\\ch7\\dc_sales.csv',encoding = "gbk")
print(dc_sales.head())
dc_sales['pixel'] = dc_sales['pixel'].astype('category')
dc_sales['pixel'].cat.categories=['500万像素及以下','500-600万像素',
'600-800万像素','800-1000万像素',
'1000万像素及以上']
#dc_sales['pixel'].cat.set_categories=['500万像素及以下','500-600万像素',
# '600-800万像素','800-1000万像素',
# '1000万像素及以上']
print(dc_sales.head())
print(pd.pivot_table(dc_sales,
index=['pixel'],
columns=['market'],
values=['sales'],
aggfunc='sum'))
G=dc_sales['pixel'].unique() #G用于统计变量pixel的像素属性
args=[] #列表args用于存储不同像素属性下的销售数据
for i in list(G):
args.append(dc_sales[dc_sales['pixel']==i]['sales'])
print(args)
print("\n 对于一元方差分析常用Levene's检验:")
print(stats.levene(*args))
运行:
market pixel sales
0 1 1 70
1 1 2 101
2 1 3 114
3 1 4 120
4 1 5 132
market pixel sales
0 1 500万像素及以下 70
1 1 500-600万像素 101
2 1 600-800万像素 114
3 1 800-1000万像素 120
4 1 1000万像素及以上 132
sales
market 1 2 3 4 5 6 7 8
pixel
500万像素及以下 70 67 82 87 80 80 87 96
500-600万像素 101 76 97 88 92 99 123 90
600-800万像素 114 96 128 103 107 91 99 119
800-1000万像素 120 98 132 128 132 132 131 119
1000万像素及以上 132 102 123 119 123 135 126 117
[0 70
5 67
10 82
15 87
20 80
25 80
30 87
35 96
Name: sales, dtype: int64, 1 101
6 76
11 97
16 88
21 92
26 99
31 123
36 90
Name: sales, dtype: int64, 2 114
7 96
12 128
17 103
22 107
27 91
32 99
37 119
Name: sales, dtype: int64, 3 120
8 98
13 132
18 128
23 132
28 132
33 131
38 119
Name: sales, dtype: int64, 4 132
9 102
14 123
19 119
24 123
29 135
34 126
39 117
Name: sales, dtype: int64]
对于一元方差分析常用Levene's检验:
LeveneResult(statistic=0.233384556281214, pvalue=0.9176929576341715)