Python 期末1 电商订单(DataFrame)
附件salesdata.xlsx是某电商一周的订单数据,请对该数据文件进行统计分析:
(1)请统计每种商品该周的销售量,并按从大到小的顺序排列。
(2)请统计该周内每小时所有商品的销售量,并按从大到小的顺序排列。
如:
时间段 销售量
1400-1500 7338
1100-1200 5254
1500-1600 5031
0800-0900 3234
(3)请统计该周每天所有商品的销售量,并按从小到大的顺序排序
salesdata.xlsx
import pandas as pd
import numpy as np
import copy
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
df=pd.read_excel(r'C:\Users\Administrator\Desktop\salesdata.xlsx')
问题一
a=df.groupby(by="商品编码")['实发数量'].sum()
a.sort_values(ascending=False)
问题二
dff = copy.deepcopy(df)
dff['时间段']=pd.to_datetime(df['发货日期']).dt.hour
b=dff.groupby(by="时间段")['实发数量'].sum()
time=b.sort_values(ascending=False)
ls=[]
ls.append("时间段 销售量")
first=list(dict(time))
second=list(time)
for i in range(len(first)):
if len(str(int(first[i])))!=1:
ls.append(str(int(first[i]))+"00"+"-"+str(int(first[i])+1)+"00"+" "+str(second[i]))
else:
if int(first[i])!=9:
ls.append("0"+str(int(first[i]))+"00"+"-"+"0"+str(int(first[i])+1)+"00"+" "+str(second[i]))
else:
ls.append("0"+str(int(first[i]))+"00"+"-"+str(int(first[i])+1)+"00"+" "+str(second[i]))
for i in ls:
print(i)
问题三
dff = copy.deepcopy(df)
dff['发货日期']=pd.to_datetime(df['发货日期'])
dff.resample('1D', on='发货日期').sum()['实发数量'].sort_values(ascending=True)