# -*- 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'])
#繪製盒須圖
dc_sales_plot=plt.boxplot(args,vert=True,patch_artist=True)
#colors=['',]
fig=plt.gcf()
fig.set_size_inches(8,5)
combinebox=plt.subplot(111)
combinebox.set_xticklabels(G, fontproperties=myfont)
plt.show()
運行:
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