假定某商场负责人,想要了解家电的全年营业额情况,请你对数据进行分析处理。
(1)按照要求生成某商场家电营业额模拟数据文件jd.csv,包含'商品名称', '商品类别','一季度销售额', '二季度销售额','三季度销售额', '四季度销售额'等至少50行数据。
import csv
import random
import datetime
fn = 'jd.csv'
with open(fn,'w') as fp:
wr=csv.writer(fp)
wr.writerow(['商品名称','商品类别','一季度销售额','二季度销售额','三季度销售额','四季度销售额'])
for i in range(100):
mc=random.choice(['商品1','商品2','商品3','商品4','商品5','商品6','商品7','商品8','商品9','商品10'])
lb=random.choice(['大家电','小家电'])
first=random.randint(5000,10000)
second=random.randint(5000,10000)
third=random.randint(5000,10000)
fouth=random.randint(5000,10000)
wr.writerow([mc,lb,first,second,third,fouth])
(2)使用pandas读取文件jd.csv中的数据,创建DataFrame对象,并删除其中所有缺失值;增加“全年销售额”一列,并填充上数据,先按照“家电类别”排序,再按照“全年销售额”降序排序,以二维数组形式输出。
import matplotlib.pyplot as plt
import pandas as pd
df= pd.read_csv('jd.csv',encoding='GBK')
df= df.dropna()
df1=df.reindex(columns=list(df.columns)+['全年销售额'])
df1['全年销售额'].fillna(df.一季度销售额+df.二季度销售额+df.三季度销售额+df.四季度销售额)
df2=df1.sort_values(by=['商品类别','全年销售额'],ascending=False)
print("按照商品类别和全年销售额排序后的结果为:")
print(df2)
(3)先按照“家电类别”分组,统计输出各个季度销售额的平均值,再通过DataFrame对象的plot()方法自动调用matplotlib的绘图功能,绘制出大家电小家电各季度销售额的平均值分布图,其中x轴为家电类别, y轴为各季度销售额的平均值。
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
df=pd.read_csv('jd.csv',encoding='GBK')
df=df.dropna()
a=df.groupby(['商品类别']).mean()
print("各个季度销售额的平均值为:")
print(a)
a.plot(kind='bar',title='大家电小家电各个季度销售额的平均值分布图')
plt.show()