Python pandas数据预处理之行数据复制

您所在的位置:网站首页 so的近义词英语怎么写的单词 Python pandas数据预处理之行数据复制

Python pandas数据预处理之行数据复制

#Python pandas数据预处理之行数据复制| 来源: 网络整理| 查看: 265

现有一张进货表格,数据如下,需要将商品数量与商品名称拆分,最终实现有多少个商品显示多少行数据。即当商品为“鸡蛋*5”时,需要有5条鸡蛋数据。 在这里插入图片描述

import pandas as pd import numpy as np file_path=r"E:\临时\数据预处理.xlsx" data=pd.read_excel(file_path) #首先将不同商品做拆分,间隔符为"," data10=data.join(data["商品"].str.split(",",expand=True))

拆分后的数据如下: 在这里插入图片描述

#不同商品拆分后第一次复制 data20=data10[["日期",0]] data20.rename(columns={0:"商品"},inplace=True) data30=data10[["日期",1]] data30.rename(columns={1:"商品"},inplace=True) data40=data10[["日期",2]] data40.rename(columns={2:"商品"},inplace=True) data_con=pd.concat([data20,data30,data40]) data_con=data_con[data_con["商品"].notna()] #将商品名称与商品数量拆分 data_con.reset_index(drop=True,inplace=True) data_con=data_con.join(data_con["商品"].str.split("*",expand=True))

拆分后的数据如下: 在这里插入图片描述

data_con.rename(columns={0:"商品名称",1:"商品数量"},inplace=True) data_con["商品数量"]=data_con["商品数量"].astype(int) #商品名称与数量拆分后第二次复制 data_pro=pd.DataFrame() for i in range(data_con.shape[0]): data_temp=pd.DataFrame(np.repeat(pd.DataFrame(data_con.iloc[i]).T.values,data_con.iloc[i]["商品数量"],axis=0)) data_temp.columns=pd.DataFrame(data_con.iloc[i]).T.columns data_pro=pd.concat([data_pro,data_temp])

在这里插入图片描述

data_pro=data_pro[['日期', '商品名称']] data_pro["商品数量"]=1

在这里插入图片描述

最后将data_pro导出即可。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3