翼度科技»论坛 编程开发 python 查看内容

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

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
pandas数据预处理行数据复制

现有一张进货表格,数据如下,需要将商品数量与商品名称拆分,最终实现有多少个商品显示多少行数据。
即当商品为“鸡蛋*5”时,需要有5条鸡蛋数据。
  1. import pandas as pd
  2. import numpy as np
  3. file_path=r"E:\临时\数据预处理.xlsx"
  4. data=pd.read_excel(file_path)
复制代码
  1. #首先将不同商品做拆分,间隔符为","
  2. data10=data.join(data["商品"].str.split(",",expand=True))
复制代码

拆分后的数据

如下:
  1. #不同商品拆分后第一次复制
  2. data20=data10[["日期",0]]
  3. data20.rename(columns={0:"商品"},inplace=True)

  4. data30=data10[["日期",1]]
  5. data30.rename(columns={1:"商品"},inplace=True)

  6. data40=data10[["日期",2]]
  7. data40.rename(columns={2:"商品"},inplace=True)

  8. data_con=pd.concat([data20,data30,data40])

  9. data_con=data_con[data_con["商品"].notna()]
复制代码
  1. #将商品名称与商品数量拆分
  2. data_con.reset_index(drop=True,inplace=True)
  3. data_con=data_con.join(data_con["商品"].str.split("*",expand=True))
复制代码
拆分后的数据

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

  2. data_pro["商品数量"]=1
复制代码

最后将data_pro导出即可。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/python/316166ybp.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具