附件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)

标签: none

添加新评论