Python?pandas數(shù)據(jù)預(yù)處理之行數(shù)據(jù)復(fù)制方式
pandas數(shù)據(jù)預(yù)處理行數(shù)據(jù)復(fù)制
現(xiàn)有一張進(jìn)貨表格,數(shù)據(jù)如下,需要將商品數(shù)量與商品名稱拆分,最終實(shí)現(xiàn)有多少個(gè)商品顯示多少行數(shù)據(jù)。
即當(dāng)商品為“雞蛋*5”時(shí),需要有5條雞蛋數(shù)據(jù)。

import pandas as pd import numpy as np file_path=r"E:\臨時(shí)\數(shù)據(jù)預(yù)處理.xlsx" data=pd.read_excel(file_path)
#首先將不同商品做拆分,間隔符為","
data10=data.join(data["商品"].str.split(",",expand=True))
拆分后的數(shù)據(jù)
如下:

#不同商品拆分后第一次復(fù)制
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()]
#將商品名稱與商品數(shù)量拆分
data_con.reset_index(drop=True,inplace=True)
data_con=data_con.join(data_con["商品"].str.split("*",expand=True))
拆分后的數(shù)據(jù)
如下:

data_con.rename(columns={0:"商品名稱",1:"商品數(shù)量"},inplace=True)
data_con["商品數(shù)量"]=data_con["商品數(shù)量"].astype(int)
#商品名稱與數(shù)量拆分后第二次復(fù)制
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]["商品數(shù)量"],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["商品數(shù)量"]=1

最后將data_pro導(dǎo)出即可。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python報(bào)錯(cuò):KeyError: ‘xxx‘的原因及解決方案
在Python編程實(shí)踐中,遇到KeyError是一種常見的異常,特別是在處理字典(dictionary)時(shí),當(dāng)嘗試訪問一個(gè)不存在于字典中的鍵時(shí),Python會(huì)拋出KeyError,本文旨在深入探討這一錯(cuò)誤的背景、發(fā)生原因、解決方案,需要的朋友可以參考下2025-07-07
python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換
本文主要介紹了python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Django REST framework內(nèi)置路由用法
這篇文章主要介紹了Django REST framework內(nèi)置路由用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
對(duì)Python強(qiáng)大的可變參數(shù)傳遞機(jī)制詳解
今天小編就為大家分享一篇對(duì)Python強(qiáng)大的可變參數(shù)傳遞機(jī)制詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python 3.10 的首個(gè) PEP 誕生,內(nèi)置類型 zip() 迎來新特性(推薦)
這篇文章主要介紹了Python 3.10 的首個(gè) PEP 誕生,內(nèi)置類型 zip() 迎來新特性,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
python?numpy.linalg.norm函數(shù)的使用及說明
這篇文章主要介紹了python?numpy.linalg.norm函數(shù)的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

