利用Python的pandas數(shù)據(jù)處理包將寬表變成窄表
前言
工作中經(jīng)常會(huì)使用到將寬表變成窄表,例如這樣的形式
| 編號(hào) | 編碼 | 單位1 | 單位2 | 單位3 | 單位4 | ... | ... | ... | ... | ... | ... |
| 1 | 編碼1... | 數(shù)量... | 數(shù)量... | 數(shù)量... | 數(shù)量... | ... | ... | ... | ... | ... | ... |
| 2 | 編碼2... | 數(shù)量... | 數(shù)量... | 數(shù)量... | 數(shù)量... | ... | ... | ... | ... | ... | ... |
然而工作中,這樣查看數(shù)據(jù)不夠方便,往往需要窄表的形式,如下:
| 編碼 | 單位 | 數(shù)量 |
| 編碼1 | 單位1 | 數(shù)量1 |
| 編碼2 | 單位2 | 數(shù)量2 |
| 編碼3 | 單位3 | 數(shù)量3 |
| ...... | ...... | ...... |
嘗試使用Excel中的lookup函數(shù)進(jìn)行填充,較為麻煩還不能直接實(shí)現(xiàn)功能,剛好在自學(xué)Python,就查閱了資料,看看能不能使用Python強(qiáng)大的數(shù)據(jù)處理功能來(lái)實(shí)現(xiàn)這個(gè)需求。
pandas簡(jiǎn)介:pandas=pannel data+ data analysis;最初被作為金融數(shù)據(jù)分析工具而開(kāi)發(fā)出來(lái)的,pandas為時(shí)間序列分析提供了很好的支持。同是也能夠靈活處理缺失數(shù)據(jù),為數(shù)據(jù)分析操作提供了更為便捷的手段。
話不多說(shuō),直接上jupyter代碼。
1.引入包
供處理分析使用,這步so easy!
import pandas as pd import numpy as np import os
2.加載數(shù)據(jù)并顯示。常規(guī)操作。
data=pd.read_excel('test.xls')
data.head()自己的測(cè)試數(shù)據(jù)存在test.xls中,這個(gè)文件存儲(chǔ)在路徑不必考慮,直接將原始存儲(chǔ)的文件在jupyter中點(diǎn)upload上傳到里根目錄里就可以。

顯示出來(lái)的,結(jié)果如圖所示:

3.關(guān)鍵操作,將寬表轉(zhuǎn)換為窄表
pd.set_option('display.max_rows', None)
df=pd.melt(data,id_vars="結(jié)算編碼",var_name="單位",value_name="數(shù)量")
df.head()顯示結(jié)果如下, 可以看到數(shù)據(jù)顯示不全,還有空值,需要進(jìn)一步進(jìn)行處理操作。

4.對(duì)空值進(jìn)行處理
pd.set_option('display.max_rows', None)
#刪除所有值為空的行
df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
#how字段可選有any和all,any表示只要有空值出現(xiàn)就刪除,all表示全部為空值才刪除;inplace字段表示是否替換掉原本的數(shù)據(jù)
#刪除所有值為空的列
df.dropna(axis="columns",how="all",inplace=False)
df.dropna()處理后的結(jié)果可以看到,數(shù)據(jù)顯示齊全,并已過(guò)濾處理掉了空值。

5.導(dǎo)出存儲(chǔ)到Excel中
file_dir = 'D:/program/write/'
exists = os.path.exists(file_dir)
if not exists:
os.makedirs(file_dir)
df["結(jié)算編碼"] = df["結(jié)算編碼"].astype(str) #設(shè)置單元格格式
df.dropna().to_excel(os.path.join(file_dir,"result3.xlsx"), sheet_name="處理結(jié)果")處理后的存儲(chǔ)結(jié)果:

結(jié)論:Python對(duì)數(shù)據(jù)處理分析真的操作簡(jiǎn)單高效,后續(xù)可以多多嘗試使用Python來(lái)簡(jiǎn)化辦公繁雜的程序,提升工作效率。
到此這篇關(guān)于利用Python的pandas數(shù)據(jù)處理包將寬表變成窄表的文章就介紹到這了,更多相關(guān)Python的pandas數(shù)據(jù)處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python?pandas處理excel表格數(shù)據(jù)的常用方法總結(jié)
- python數(shù)據(jù)處理之Pandas類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)
- Python?Pandas讀取Excel日期數(shù)據(jù)的異常處理方法
- Python數(shù)據(jù)處理的26個(gè)Pandas實(shí)用技巧總結(jié)
- python?pandas數(shù)據(jù)處理教程之合并與拼接
- python優(yōu)化數(shù)據(jù)預(yù)處理方法Pandas pipe詳解
- python數(shù)據(jù)處理67個(gè)pandas函數(shù)總結(jié)看完就用
- VBA處理數(shù)據(jù)與Python Pandas處理數(shù)據(jù)案例比較分析
- Python使用Pandas對(duì)csv文件進(jìn)行數(shù)據(jù)處理的方法
- Python利用pandas處理Excel數(shù)據(jù)的應(yīng)用詳解
相關(guān)文章
python+tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)單的秒鐘
這篇文章主要為大家詳細(xì)介紹了Python如何利用tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)單的秒鐘,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以自己動(dòng)手嘗試一下2024-02-02
Python高級(jí)property屬性用法實(shí)例分析
這篇文章主要介紹了Python高級(jí)property屬性用法,結(jié)合實(shí)例形式分析了Python property屬性的功能及各種常見(jiàn)的使用技巧,需要的朋友可以參考下2019-11-11
Keras構(gòu)建神經(jīng)網(wǎng)絡(luò)踩坑(解決model.predict預(yù)測(cè)值全為0.0的問(wèn)題)
這篇文章主要介紹了Keras構(gòu)建神經(jīng)網(wǎng)絡(luò)踩坑(解決model.predict預(yù)測(cè)值全為0.0的問(wèn)題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
django 利用Q對(duì)象與F對(duì)象進(jìn)行查詢的實(shí)現(xiàn)
這篇文章主要介紹了django 利用Q對(duì)象與F對(duì)象進(jìn)行查詢的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
利用Python定位Span標(biāo)簽中文字的實(shí)戰(zhàn)指南
在網(wǎng)頁(yè)數(shù)據(jù)抓取和信息提取的過(guò)程中,經(jīng)常需要定位并獲取HTML中特定標(biāo)簽的內(nèi)容,其中,<span>標(biāo)簽是一個(gè)常見(jiàn)的內(nèi)聯(lián)元素,用于對(duì)文本進(jìn)行分組或應(yīng)用樣式,本文將詳細(xì)介紹如何使用Python來(lái)定位并提取<span>標(biāo)簽中的文字,需要的朋友可以參考下2024-12-12
python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例
今天小編就為大家分享一篇python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
基于Python編寫(xiě)一個(gè)監(jiān)控CPU的應(yīng)用系統(tǒng)
在使用電腦辦公時(shí),有時(shí)候不知道哪些軟件或進(jìn)程會(huì)占用大量的資源,導(dǎo)致進(jìn)行其他任務(wù)時(shí)出現(xiàn)變慢、卡頓等現(xiàn)象。因此,實(shí)時(shí)監(jiān)控系統(tǒng)的資源就變得非常重要。本文用Python編寫(xiě)了一款超治愈的RunCat監(jiān)控應(yīng)用系統(tǒng),需要的可以參考一下2022-06-06
教你學(xué)會(huì)通過(guò)python的matplotlib庫(kù)繪圖
今天教大家如何學(xué)會(huì)通過(guò)python的matplotlib庫(kù)繪圖,文中有非常詳細(xì)的圖文解說(shuō)及代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05

