读取新增,drop除月末的其他数据
data = pd.read_csv('/Users/bella/Downloads/miui-new-user_2019-01-01_2019-12-31 (1).csv',sep=',')
data['红米Note5A_Sum(月新增)'] = data['红米Note5A_Sum(月新增)'].apply(lambda x:x.replace('-','0')).dropna()
data['红米Note5A_Sum(月新增)'] = data['红米Note5A_Sum(月新增)'].apply(lambda x:int(float(x))) # 将str类型的0转换成int类型的0
data = data[~data['红米Note5A_Sum(月新增)'].isin([0])]
data
去掉不需要的列
去掉关于“环比”的列
for i in new.columns:
if '月新增环比' in i:
new = new.drop(i,axis=1)
批量更改列名
new = new.rename(lambda x: x.replace('(月新增)',''), axis='columns')
new = new.rename(lambda x: x.replace('_Sum',''), axis='columns')
melt列转行
将原来的很多列,转为一列数据;
将原来的日期*机型,值=数量 转为 日期,机型,数量。
new = new.melt(id_vars=['日期'],value_vars=new.drop('日期',axis=1).columns.values,var_name='brand',value_name='新增')
new.head()
写入Excel
save_path = '/Users/bella/Desktop/xiaoming.xlsx'
writer = pd.ExcelWriter(save_path)
data.to_excel(writer,sheet_name='新增')
读取流失
lost = pd.read_csv('/Users/bella/Downloads/miui-active-user_2019-01-01_2020-01-01.csv',sep=',')
date = data[['日期']]
lost = pd.merge(lost,date)
lost
由于流失数据是按照每30天计算的,因此所有分区365天都有数,因此只能通过与新增‘inner’ join的方式得到12个月的数据;
reduce合并
在这里插入代码片
结束存储入Excel
#save_path = '/Users/bella/Desktop/xiaoming.xlsx'
#writer = pd.ExcelWriter(save_path)
lost.to_excel(writer,sheet_name='流失')
## 重要!!!
writer.save()