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

 更新时间:2024年02月23日 08:43:16   作者:永远在减肥永远110的的小潘  
这篇文章主要介绍了Python pandas数据预处理之行数据复制方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

pandas数据预处理行数据复制

现有一张进货表格,数据如下,需要将商品数量与商品名称拆分,最终实现有多少个商品显示多少行数据。

即当商品为“鸡蛋*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导出即可。

总结

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

相关文章

  • Python面向对象封装案例基础教程

    Python面向对象封装案例基础教程

    这篇文章主要为大家介绍了Python面向对象封装案例基础教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • python实现aes加密及pycryptodome库使用

    python实现aes加密及pycryptodome库使用

    AES算法是高级加密标准,它是一种对称加密算法,AES只有一个密钥,这个密钥既用来加密,也用于解密,这篇文章主要给大家介绍了关于python实现aes加密及pycryptodome库使用的相关资料,需要的朋友可以参考下
    2023-10-10
  • python DataFrame的shift()方法的使用

    python DataFrame的shift()方法的使用

    在python数据分析中,可以使用shift()方法对DataFrame对象的数据进行位置的前滞、后滞移动,本文主要介绍了python DataFrame的shift()方法的使用,感兴趣的可以了解一下
    2022-03-03
  • python构造icmp echo请求和实现网络探测器功能代码分享

    python构造icmp echo请求和实现网络探测器功能代码分享

    本文分享了二个python示例,python构造icmp echo请求、实现网络探测器功能代码,类似nmap功能
    2014-01-01
  • Python中requests.session()的用法小结

    Python中requests.session()的用法小结

    这篇文章主要介绍了Python中requests.session()的用法小结,可能大家对 session 已经比较熟悉了,也大概了解了session的机制和原理,但是我们在做爬虫时如何会运用到session呢,接下来要讲到会话保持,需要的朋友可以参考下
    2022-11-11
  • 使用requests库制作Python爬虫

    使用requests库制作Python爬虫

    Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作。一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。
    2018-03-03
  • python+adb+monkey实现Rom稳定性测试详解

    python+adb+monkey实现Rom稳定性测试详解

    这篇文章主要介绍了python+adb+monkey实现Rom稳定性测试详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Django数据映射(一对一,一对多,多对多)

    Django数据映射(一对一,一对多,多对多)

    本文主要介绍了Django数据映射(一对一,一对多,多对多),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python中bisect的用法及示例详解

    Python中bisect的用法及示例详解

    这篇文章主要介绍了Python中bisect的用法及示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python连接数据库并批量插入包含日期记录的操作

    Python连接数据库并批量插入包含日期记录的操作

    这篇文章主要介绍了Python连接数据库并批量插入包含日期记录的操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06

最新评论