现有一张进货表格,数据如下,需要将商品数量与商品名称拆分,最终实现有多少个商品显示多少行数据。即当商品为“鸡蛋*5”时,需要有5条鸡蛋数据。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/aa22d443e7864bce830ed1e2c4e45e09.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rC46L-c5Zyo5YeP6IKl5rC46L-cMTEw55qE55qE5bCP5r2Y,size_6,color_FFFFFF,t_70,g_se,x_16)
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))
拆分后的数据如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/f71c0b789a17465587b1524dc4ffbbc7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rC46L-c5Zyo5YeP6IKl5rC46L-cMTEw55qE55qE5bCP5r2Y,size_10,color_FFFFFF,t_70,g_se,x_16)
#不同商品拆分后第一次复制
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))
拆分后的数据如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/78d956d05a944ae2b18506f042246af5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rC46L-c5Zyo5YeP6IKl5rC46L-cMTEw55qE55qE5bCP5r2Y,size_4,color_FFFFFF,t_70,g_se,x_16)
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])
![在这里插入图片描述](https://img-blog.csdnimg.cn/61e0afadaf2b4876b1dca0fecfa076d1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rC46L-c5Zyo5YeP6IKl5rC46L-cMTEw55qE55qE5bCP5r2Y,size_7,color_FFFFFF,t_70,g_se,x_16)
data_pro=data_pro[['日期', '商品名称']]
data_pro["商品数量"]=1
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f033d67bb5a4276a49b4916835c5baa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rC46L-c5Zyo5YeP6IKl5rC46L-cMTEw55qE55qE5bCP5r2Y,size_6,color_FFFFFF,t_70,g_se,x_16)
最后将data_pro导出即可。
|