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導出即可。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python3.10?Generator生成器Coroutine原生協程詳解
這篇文章主要為大家介紹了Python3.10?Generator生成器Coroutine原生協程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12

