·av68916814
输出csv文件后再使用图表秀绘图
iloc,loc的使用:https://blog.youkuaiyun.com/w_weiying/article/details/81411257
功能为取某一行,简单来说大概是iloc用数字索引,loc用行名称索引
取某行某列: iloc[0,0] loc['行名','列名' ]
.groupby(' '):按' '分组
.groupby(' ').sum():分组并相加
.drop():删除某行
筛选并排序:df[df[' '] < 0].sort_values(' ')
.startswith():https://www.jb51.net/article/63589.htm
是否以某个字符/字符串开头
输出到csv文件出现乱码:.to_csv('比较.csv',encoding="utf_8_sig")
#读取表格文件
df = pd.read_excel("testdata.xlsx")
df.shape
print(df.columns)
print(df.iloc[0])
#修改列名以规范数据
视频里用的是fillna('id')的方法 但我读出来的数据并不是nan 就换了一个方法
df.rename(columns={'Unnamed: 0':'id'}, inplace = True)
print(df)
至此,数据的列名为
['id', '订单号', '订单日期', '年份', '订单量', '成本', '销售', '利润', '渠道', '产品名字', '制造商',
'商标', '品牌', '产品子分类', '产品分类', '地区', '城市', '国家']
Q1:假设销售预测是成本+成本*15%,比较一下实际销售和预测(按每个产品子类)
#为数据增加预测指标列
yuce = df['成本'] * 1.5
yuce = yuce.apply(lambda row: int(row))#变为整数
df['销售预测'] = yuce
print(df.columns)
q1 = df[['产品子分类','销售','销售预测']]
q1 = q1.groupby('产品子分类').sum()
q1.to_csv('销售预测对比.csv',encoding="utf_8_sig")
Q2:逐年比较年份销售和前一年的对比,用百分比表示
#按年份取出
q2 = df[['年份','销售']].groupby('年份').sum()
print(q2)
index = -1
def xiaoshoucha(row):
global index
cha = 0
if index >= 0:
cha = (row['销售'] - q2.iloc[index,0])/q2.iloc[index,0]*100
index = index + 1
return cha
q2['销售差'] = q2.apply(lambda row:xiaoshoucha(row),axis=1)
q2.to_csv('销售差.csv',encoding="utf_8_sig")
Q3:销售&利润关系 按品牌
q3 = df[['品牌','销售','利润','订单量']].groupby('品牌').sum()
q3.to_csv('利润关系.csv',encoding="utf_8_sig")
Q4:所有品牌比较,以小米为基准,比较其他品牌与小米的差异
q4 = df[['品牌','销售','利润']].groupby('品牌').sum()
mix = q4.loc['小米(MI)','销售']
q4['小米销售'] = mix
mil = q4.loc['小米(MI)','利润']
q4['小米利润'] = mil
#mid = q4.loc['小米(MI)','订单量']
#q4['小米订单量'] = mid
q4 = q4.drop(['小米(MI)'])#删除这一行
q4.to_csv('比较.csv',encoding="utf_8_sig")