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

25 篇文章 11 订阅
这篇博客介绍了如何使用Python的pandas库处理Excel数据,具体操作是将商品数量与商品名称进行拆分。通过示例代码展示了如何将带有数量信息的商品名(如'鸡蛋*5')拆分成5行单独的'鸡蛋'记录,并保留日期信息。最后,将处理后的数据导出,以便进一步分析。
摘要由CSDN通过智能技术生成

现有一张进货表格,数据如下,需要将商品数量与商品名称拆分,最终实现有多少个商品显示多少行数据。即当商品为“鸡蛋*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导出即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值