MIUI上下载全机型的全年数据+melt列转行+批量改列名+写入Excel

该博客介绍了如何在MIUI系统上处理全机型的下载数据。内容包括读取并删除非月末数据,去除无关列,批量改列名,使用melt函数将行列转换,以日期、机型和数量为关键字段,最后将处理后的数据写入Excel文件。此外,还涉及了处理流失数据的方法,通过内连接合并得到12个月的完整数据,并用reduce函数进行数据整合。
摘要由CSDN通过智能技术生成

读取新增,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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值