pandas做统计分析

目的:了解市场上6月份男鞋销售情况

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame(pd.read_excel('6月男鞋数据.xlsx'))  #导入数据
print(df.head())  #打印前5列,查看数据结构
data = df.iloc[:,:19]   #获取有字段的列

print(data.columns) #列名
print(data.shape) #行列数

不同品牌类别鞋子的销量对比

#分组求和np.sum,分组求均值np.mean
shoe_class_volume = data[['品牌','月销量']]
grouped = shoe_class_volume.groupby('品牌')
result = grouped.agg(np.sum).reset_index() #reset_index函数使得结果重新转化成DataFrame的结构

#作图
x = result['品牌']
y = result['月销量']
plt.figure()#定义一个图像窗口
plt.plot(x,y)#plot()画出曲线
plt.show()#显示图像

给定两个变量,求分类统计


def groupby_sum(var1,var2):
    """
    var1: 变量
    var2:统计值
    """
    volume = data[[var1, var2]]
    grouped = volume.groupby(var1)
    result = grouped.agg(np.sum).reset_index() #reset_index函数使得结果重新转化成DataFrame的结构
    return result


将结果导出到excel

var2 = '月销量'
vlist = ['材质','风格', '尺码', '上市年季']
file_path = 'output.xlsx'
writer = pd.ExcelWriter(file_path)
for i,v in enumerate(vlist):
    ans  = groupby_sum(v,var2)
    ans.to_excel(excel_writer=writer, sheet_name = 'Sheet' + str(i))
    writer.save()
writer.close()
print("==========================")

计算价格和牌价的差价

price = data[['价格','牌价']]
price['diff'] = None  #新增一列

#iterrows按照每行迭代,每行的数据格式是series类似于数组
res = pd.Series([])
for k,v in price[:5].iterrows():
    v[2] = v[1] - v[0] 
    res = res.append(v)
    

相关系数

data.corr() #所以特征的相关系数

#============================
#价格和销量的相关系数
price = data['价格']
volume = data['月销量']

#做散点图,判断是否二者是否存在线性相关
plt.scatter(price, volume)
plt.title('price and volume')
plt.xlabel('price')
plt.ylabel('volume')
plt.savefig('price and volume.png')
plt.show
#从图中可知,存在异常值,二者不存在明显的线性关系(person),且二者不存在分类数据(Kendall),因此选择spearman相关系数
r=price.corr(volume, method='spearman')

制作词云

#数据库中字段导出txt文件
title = data['备注']
title.to_csv('title.txt', sep='\t', index=False)

具体教程见用Python实现一个词频统计(词云)图

安装过程出现一些错误

你可能感兴趣的:(Python,数据分析)