





收稿日期:2023-07-28
基金項(xiàng)目:2022年上海震旦職業(yè)學(xué)院校級(jí)科研創(chuàng)新項(xiàng)目(SHZD2022011);國家自然科學(xué)基金資助項(xiàng)目(61601296)
DOI:10.19850/j.cnki.2096-4706.2024.03.021
摘" 要:隨著大數(shù)據(jù)、云計(jì)算等信息技術(shù)的發(fā)展,企業(yè)已經(jīng)從過去的“粗放式”運(yùn)營轉(zhuǎn)變?yōu)楫?dāng)前注重?cái)?shù)據(jù)分析的“精細(xì)化”運(yùn)營。為了有效利用商務(wù)數(shù)據(jù),可使用數(shù)據(jù)分析技術(shù)幫助企業(yè)獲取、整理和處理海量數(shù)據(jù),為企業(yè)的經(jīng)營決策提供積極、高效的幫助。現(xiàn)以一家處于虧損狀態(tài)的小型口罩工廠為分析對象,使用Python語言并通過明確目標(biāo)、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)和報(bào)告撰寫的步驟完成口罩廠歷史數(shù)據(jù)分析的整個(gè)流程,從而幫助口罩廠探尋虧損問題的根本原因以及下一階段的經(jīng)營發(fā)展趨勢,并為口罩廠的未來發(fā)展模式提供相關(guān)建議。
關(guān)鍵詞:Python;數(shù)據(jù)分析;商務(wù)數(shù)據(jù);數(shù)據(jù)處理;數(shù)據(jù)展現(xiàn)
中圖分類號(hào):TP312;TP399" 文獻(xiàn)標(biāo)識(shí)碼:A" 文章編號(hào):2096-4706(2024)03-0099-04
Application of Python Data Analysis in the Business Field
LIANG Chen1, MA Tianming2
(1.Shanghai Aurora College Co., Ltd., Shanghai" 201908, China; 2.College of Electronic and Electrical Engineering, Shanghai University of Engineering Science, Shanghai" 201620, China)
Abstract: With the development of information technology such as Big Data and cloud computing, enterprises have changed from “extensive” operations to “refined” operations that focus on data analysis. In order to effectively utilize business data, data analysis technology can be used to help enterprises obtain, organize and process massive amounts of data, providing positive and efficient assistance for business decision-making. This paper takes a small mask factory which is in a loss making state as the analytic target. It uses Python language and completes the entire process of historical data analysis for the mask factory through clear goals, data processing, data analysis, data presentation and report writing, so as to help the mask factory explore the root cause of the loss problem of the mask factory and business development trends of the next stage. And it provides relevant suggestions for the future development mode of the mask factory.
Keywords: Python; data analysis; business data; data processing; data presentation
0" 引" 言
隨著數(shù)字經(jīng)濟(jì)的快速發(fā)展,數(shù)據(jù)作為現(xiàn)代經(jīng)濟(jì)發(fā)展的重要生產(chǎn)要素,能有效提高企業(yè)經(jīng)營管理效率,推動(dòng)企業(yè)數(shù)字化變革。借助現(xiàn)代信息技術(shù),充分挖掘數(shù)據(jù)的應(yīng)用潛力,實(shí)現(xiàn)企業(yè)數(shù)字化轉(zhuǎn)型升級(jí),是現(xiàn)代企業(yè)發(fā)展的必由之路。
對于企業(yè)而言,商務(wù)數(shù)據(jù)是非常重要的信息資源。運(yùn)營者對商務(wù)數(shù)據(jù)進(jìn)行科學(xué)、有效的分析,所得到的分析結(jié)果能夠?yàn)槠髽I(yè)運(yùn)營提供有效的指導(dǎo)和支持。商務(wù)數(shù)據(jù)分析[1-3]的目的主要是從數(shù)據(jù)中挖掘、提煉出有效信息,發(fā)現(xiàn)研究對象的內(nèi)在規(guī)律。其作用主要體現(xiàn)在了解運(yùn)營狀況、把握運(yùn)營方向、控制運(yùn)營成本和對營銷方案進(jìn)行有效評(píng)估這四個(gè)方面。
Python[4-6]數(shù)據(jù)分析類庫日漸完善,只需要少量代碼就可以完成各種常用統(tǒng)計(jì)計(jì)算和數(shù)據(jù)分析模型。Python中的Pandas類庫的設(shè)計(jì)主要以行和列的形式處理數(shù)據(jù),更加符合日常批量數(shù)據(jù)處理的需求[7]。因此,Python已成為商業(yè)數(shù)據(jù)分析的重要工具。
本文使用Python對一家處于虧損狀態(tài)的小型口罩工廠進(jìn)行數(shù)據(jù)分析,通過明確目標(biāo)、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)和報(bào)告撰寫的分析流程,探尋該廠虧損的原因和發(fā)展態(tài)勢,為企業(yè)戰(zhàn)略及商業(yè)決策提供數(shù)據(jù)支持。
1" Python語言
Python是一門應(yīng)用十分廣泛的計(jì)算機(jī)語言[8],在數(shù)據(jù)科學(xué)領(lǐng)域具有無可比擬的優(yōu)勢,逐漸成為數(shù)據(jù)科學(xué)領(lǐng)域的主流語言之一。其優(yōu)勢在于語法簡單精練、擁有大量第三方庫、功能強(qiáng)大、易于移植、適合在數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、科學(xué)數(shù)據(jù)可視化等場景中應(yīng)用[9-11],故選擇Python作為商務(wù)數(shù)據(jù)分析的開發(fā)語言。
2" 商務(wù)數(shù)據(jù)分析流程
商務(wù)數(shù)據(jù)分析與一般的數(shù)據(jù)分析的區(qū)別在于前者側(cè)重商業(yè)場景。商務(wù)數(shù)據(jù)分析需要結(jié)合內(nèi)部和外部的數(shù)據(jù)來深入剖析商業(yè)問題,基于具體的商業(yè)場景和邏輯,把數(shù)據(jù)作為原始材料,對數(shù)據(jù)進(jìn)行相應(yīng)的邏輯和結(jié)構(gòu)化處理,通過數(shù)據(jù)來洞察實(shí)際商業(yè)問題。商務(wù)數(shù)據(jù)分析流程為明確目標(biāo)、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)和報(bào)告撰寫,如圖1所示。
圖1" 商務(wù)數(shù)據(jù)分析流程圖
3" Python數(shù)據(jù)分析實(shí)例
一家小型口罩工廠從2020年初開始售賣口罩,其經(jīng)營過程一直處于不穩(wěn)定的狀態(tài)。2020年7月初,該廠賬目出現(xiàn)了虧損的情況,現(xiàn)有該廠的2020年1月至6月的銷售額、單價(jià)、訂單量等歷史經(jīng)營數(shù)據(jù)。現(xiàn)使用商務(wù)數(shù)據(jù)分析的五個(gè)步驟:明確目標(biāo)、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)和報(bào)告撰寫對口罩工廠的經(jīng)營數(shù)據(jù)進(jìn)行分析。
3.1" 明確目標(biāo)
在對數(shù)據(jù)進(jìn)行分析之前,第一步就是要明確目標(biāo),明確目標(biāo)可以分解為三個(gè)部分:明確分析需求、搭建分析框架和收集分析數(shù)據(jù)。
3.1.1" 明確分析需求
對于口罩廠的經(jīng)營狀況而言,數(shù)據(jù)分析的需求是找到工廠虧損的根本原因,探尋其下一階段的發(fā)展趨勢,并找出對應(yīng)的解決策略。
3.1.2" 搭建分析框架
口罩廠的虧損意味著利潤為負(fù),所以本質(zhì)上要研究的是口罩廠的利潤情況,利潤的計(jì)算式為:
利潤=銷售額-成本" " " " " " " " " (1)
現(xiàn)已知1月份至6月份口罩成本變動(dòng)微小,所以主要從“銷售額”入手進(jìn)行分析,銷售額的計(jì)算式為:
銷售額=訂單量×單價(jià)" " " " " " " " (2)
不同省份在1月份至6月份期間,訂單量可能會(huì)有所不同,有些省份的訂單量可能特別大,有些省份的訂單量可能可以忽略不計(jì),訂單量的算式為:
訂單量=訂單量(省份1)+ … +訂單量(省份N)(3)
通過分解上述三個(gè)公式可以看出利潤主要與銷售額、訂單量、口罩單價(jià)和訂單來源省份有關(guān)。因此,可以從各月的“銷售額”“訂單量”“單價(jià)”變化趨勢以及各月各省份的“訂單量”變化趨勢來分析變化規(guī)律及原因。
3.1.3" 收集分析數(shù)據(jù)
所獲得的口罩工廠經(jīng)營數(shù)據(jù)是csv格式,在導(dǎo)入數(shù)據(jù)后,通過使用pd.read_csv函數(shù)讀取文件中的數(shù)據(jù)。讀取的數(shù)據(jù)為訂單編號(hào)、日期、省份、訂單量、單價(jià)和銷售額,這些數(shù)據(jù)中包含之前搭建的分析框架中的銷售額、訂單量、單價(jià)和省份這些關(guān)鍵信息,可以作為后續(xù)分析的數(shù)據(jù)源,讀取的文件數(shù)據(jù)如圖2所示。
圖2" 讀取的文件數(shù)據(jù)
3.2" 數(shù)據(jù)處理
數(shù)據(jù)處理是指根據(jù)數(shù)據(jù)分析的目的,將收集到的數(shù)據(jù)進(jìn)行加工、整理,形成適合數(shù)據(jù)分析的樣式。數(shù)據(jù)處理的流程可以分為數(shù)據(jù)清洗、數(shù)據(jù)整理以及數(shù)據(jù)寫入三個(gè)步驟。
3.2.1" 數(shù)據(jù)清洗
在讀取的數(shù)據(jù)中,省份一欄有的顯示NaN(缺失值),有些行呈現(xiàn)完全相同的數(shù)據(jù),單價(jià)中有999 999 999.0和0這些異常值的出現(xiàn)。因此,需要對這些“臟數(shù)據(jù)”進(jìn)行缺失值、重復(fù)值和異常值的處理。
收集的數(shù)據(jù)中可能存在空值,故需要對其進(jìn)行處理,可以使用isna()方法來查找 DataFrame對象以及Series對象中的缺失值,返回缺失數(shù)據(jù)用True表示。由于總體數(shù)據(jù)量比較大,缺失值占總數(shù)據(jù)量比重較低,因此,直接將含缺失值的行刪除,不會(huì)影響后續(xù)的分析。
當(dāng)多行數(shù)據(jù)完全相同時(shí),需要對這些數(shù)據(jù)進(jìn)行去重處理。可以用duplicated()方法查找重復(fù)數(shù)據(jù),有重復(fù)值則返回True,使用drop_duplicates()方法來刪除重復(fù)的數(shù)據(jù)。
在訂單量、單價(jià)和銷售額列中,出現(xiàn)了特別大的值999 999 999.0以及特別小的值0,這些數(shù)值都不符合實(shí)際情況,稱之為異常值。使用describe()方法分別觀察訂單量、單價(jià)、銷售額的最大值、最小值、平均數(shù)和中位數(shù)。查詢的結(jié)果訂單量的最小值為0,在實(shí)際業(yè)務(wù)中這種情況不可能出現(xiàn);訂單量的最大值為109,工廠的產(chǎn)能無法跟上,因此,這種情況同樣不可能發(fā)生,需要過濾這些異常值。
3.2.2" 數(shù)據(jù)整理
由于此次數(shù)據(jù)分析涉及各個(gè)月的利潤變化情況,所以需要將日期的統(tǒng)計(jì)數(shù)據(jù)由年-月-日調(diào)整為月份,然后作為新的月份字段保存到數(shù)據(jù)中。首先需要將日期這一列的數(shù)據(jù)類型轉(zhuǎn)換成datetime類型,這樣才能從中提取月份信息,數(shù)據(jù)整理過程可以分解成轉(zhuǎn)換日期數(shù)據(jù)、提取月份信息以及添加新列三個(gè)部分,關(guān)鍵代碼如圖3所示。
圖3" 關(guān)鍵代碼
3.2.3" 數(shù)據(jù)寫入
使用to_csv()方法,將清洗完的數(shù)據(jù)寫入csv文件中,pandas庫將csv文件讀取為DataFrame對象時(shí)都會(huì)自動(dòng)生成行索引,把參數(shù)設(shè)置為index=False就可以取消寫入行索引。
3.3" 數(shù)據(jù)分析和展現(xiàn)
本次分析的影響因素是銷售額、訂單量、單價(jià)、各省訂單量,而且是以一個(gè)月為顆粒度,進(jìn)行時(shí)間維度上的變化趨勢和原因分析,為了更直觀地從數(shù)據(jù)中發(fā)現(xiàn)關(guān)系、規(guī)律和趨勢,使數(shù)據(jù)可視化[12,13]并進(jìn)一步從中找到工廠虧損的原因。
3.3.1" 數(shù)據(jù)可視化
對于每個(gè)月銷售額總數(shù)的統(tǒng)計(jì),首先要根據(jù)月份對數(shù)據(jù)集進(jìn)行g(shù)roupby分組[14],同時(shí)還需要對銷售額列進(jìn)行一次聚合計(jì)算,計(jì)算出銷售額的總和。為了便于更直觀地查看每個(gè)月的銷售額總數(shù),可以直接用pandas的plot()方法[15]繪制折線圖,如圖4所示。
圖4" 各月總銷售額趨勢圖
與每月銷售額一樣,訂單量需要進(jìn)行匯總計(jì)算來體現(xiàn)訂單的總量,這樣能代表整個(gè)月的訂單量情況,各月總訂單量趨勢圖如圖5所示。
對于單價(jià),價(jià)格總和是沒有意義的,價(jià)格總體的規(guī)模大小、總價(jià)格的高低不能說明任何現(xiàn)象或問題,但是單價(jià)的平均值可以反映出某一商品在一定時(shí)期內(nèi)的平均價(jià)格,在一定程度上可以體現(xiàn)普遍的價(jià)格數(shù)量。因此選擇平均數(shù)作為單價(jià)的統(tǒng)計(jì)性指標(biāo),通過分組與聚合的操作,得到數(shù)據(jù)結(jié)果,所繪制的折線圖如圖6所示。
圖5" 各月總訂單量趨勢圖
圖6" 每月平均單價(jià)趨勢圖
各月各省訂單量先按“各月”分組,再按“各省”分組,然后進(jìn)行“總和”的計(jì)算,各省各月總訂單量的變化趨勢需要通過多條折線圖來直觀體現(xiàn)出不同省份不同月份的區(qū)別,如圖7所示。
圖7" 各省各月總訂單量趨勢圖
3.3.2" 原因剖析
從圖4到圖7中可以看出各月的總銷售額、總訂單量、平均單價(jià)以及各省在各月的總訂單量,變化趨勢極具相似性:1月到3月的折線是隨著時(shí)間增長而增加,整體呈增加趨勢,其中2月到3月增長快速;3月之后整體呈下降趨勢,3月到4月出現(xiàn)了“急跌”。這些圖中只有一處波動(dòng)起伏,在這個(gè)起伏的最高點(diǎn)對應(yīng)著3月的數(shù)據(jù),所以3月為最大值。這種完全一致的變化趨勢說明總銷售額的下降是由于訂單量、單價(jià)雙雙下滑帶來的,而非某一因素單方面的影響。
通過每月總訂單量趨勢圖可以看到訂單趨勢變化的劇烈程度,3月到4月的訂單量一下子縮水了100多萬,也就是在兩三個(gè)月內(nèi)迅速改變了口罩的供需關(guān)系,因此這里排除業(yè)務(wù)內(nèi)部原因,比如偶發(fā)性降價(jià)促銷活動(dòng)帶來的客流量上漲與衰退,以及工廠競爭能力降低帶來的市場占有率從高到低等這些內(nèi)部常規(guī)運(yùn)營問題。
反觀外部原因,從2020年1月底開始,國內(nèi)就開始蔓延新型冠狀病毒疫情,到3月份,疫情感染人數(shù)才逐漸得到控制。可以看到疫情出現(xiàn)與改善的時(shí)間,與上述圖4到圖7的變化時(shí)間整體上是吻合的。疫情最嚴(yán)重的時(shí)期為2月份,3月中下旬開始,全國陸續(xù)開始復(fù)工,人群流動(dòng)性增加的情況下,口罩的需求也是達(dá)到了最高點(diǎn)。而到3月之后,疫情好轉(zhuǎn)人們對于口罩的需求迅速回落,一直到6月銷量和價(jià)格都仍在下落的過程中。
3.4" 報(bào)告撰寫
纂寫數(shù)據(jù)分析報(bào)告的目的是將分析結(jié)果、建議以及其他有價(jià)值的信息傳遞給讀者。數(shù)據(jù)分析報(bào)告的結(jié)構(gòu)可以使用總分總結(jié)構(gòu),包括項(xiàng)目背景、目的、分析思路、分析正文、結(jié)論及建議和附錄等。
4" 提出建議
根據(jù)上述數(shù)據(jù)分析的結(jié)果可以得出口罩廠出現(xiàn)虧損的根本原因是疫情逐漸穩(wěn)定,口罩需求下降,6月份之后口罩廠可能仍然會(huì)持續(xù)虧損。據(jù)此結(jié)論,提出三個(gè)建議:
1)如果公司不對口罩廠進(jìn)行新投入和改革,口罩廠會(huì)持續(xù)虧損,建議盡早對口罩廠進(jìn)行轉(zhuǎn)讓處理。
2)如果公司對口罩廠進(jìn)行新投入和改革,那需要進(jìn)一步分析產(chǎn)品情況、營銷體系等因素對于日常營銷的影響,把握住改革重點(diǎn)。
3)結(jié)合國外的疫情發(fā)展,可考慮打開疫情重災(zāi)國家的銷售渠道,以便保持高單價(jià)高銷量的營收模式。
5" 結(jié)" 論
用數(shù)據(jù)驅(qū)動(dòng)決策是當(dāng)前大數(shù)據(jù)環(huán)境下做好企業(yè)運(yùn)營的必選策略之一,數(shù)據(jù)分析應(yīng)貫穿商家運(yùn)營的始終,是企業(yè)不斷提高經(jīng)營利潤的有力武器。現(xiàn)以一家小型口罩工廠的半年經(jīng)營數(shù)據(jù)為例,通過明確目標(biāo)、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)展現(xiàn)和報(bào)告撰寫五個(gè)步驟,用Python語言完成口罩廠數(shù)據(jù)分析的整個(gè)流程,為企業(yè)的運(yùn)營發(fā)展提供有效的指導(dǎo)和支持。
參考文獻(xiàn):
[1] 何偉,張良均.Python商務(wù)數(shù)據(jù)分析與實(shí)戰(zhàn) [M].北京:人民郵電出版社,2022.
[2] 師奧翔,張潔.基于改進(jìn)RFM模型的電商用戶價(jià)值分類的研究 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2022,32(12):123-128.
[3] 班妙璇.Python在企業(yè)財(cái)務(wù)數(shù)據(jù)分析中的應(yīng)用 [J].現(xiàn)代商貿(mào)工業(yè),2023,44(12):58-60.
[4] MATTSON T G,ANDERSON T A,GEORGAKOUDIS G. PyOMP: Multithreaded Parallel Programming in Python [J].Computing in Science amp; Engineering,2021,23(6):77-80.
[5] BAUER M,LEE W,PAPADAKIS M,et al. Supercomputing in Python with Legate [J].Computing in Science amp; Engineering,2021,23(4):73-79.
[6] JIANG S N,PAN P T,OU Y H,et al. PyMTL3: A Python Framework for Open-Source Hardware Modeling,Generation,Simulation,and Verification [J].IEEE Micro,2020,40(4):58-66.
[7] 賈俊平.數(shù)據(jù)分析基礎(chǔ) Python實(shí)現(xiàn) [M].北京:中國人民大學(xué)出版社,2022.
[8] 楊年華.Python數(shù)據(jù)分析與機(jī)器學(xué)習(xí) [M].北京:清華大學(xué)出版社,2023.
[9] FUNK D. Creating a Low-Code Business Process Execution Platform with Python, BPMN, and DMN [J].IEEE Software,2023,40(1):9-17.
[10] CASS S. The Top Programming Languages: Our Latest Rankings Put Python on Top-again [J].IEEE Spectrum,2020,57(8):22.
[11] 李琴,李宇航,定會(huì).基于Python的電商產(chǎn)品評(píng)論數(shù)據(jù)分析方法探討 [J].信息記錄材料,2022,23(5):82-84.
[12] 范路橋,高潔,段班祥.基于Python+Flask+ECharts的國內(nèi)熱門旅游景點(diǎn)數(shù)據(jù)可視化系統(tǒng) [J].現(xiàn)代電子技術(shù),2023,46(9):126-130.
[13] 湯飛弘.基于Python爬蟲的招聘信息數(shù)據(jù)可視化分析 [J].軟件,2023,44(1):176-179.
[14] 謝梅芬.基于Python的個(gè)人金融數(shù)據(jù)獲取與分析 [J].數(shù)字技術(shù)與應(yīng)用,2023,41(5):118-122.
[15] 尹紅麗,趙桂新.Python科學(xué)計(jì)算、數(shù)據(jù)處理與分析 [M].北京:人民郵電出版社,2023.
作者簡介:梁琛(1987—),女,漢族,上海人,工程師,碩士,研究方向:數(shù)據(jù)分析;馬天鳴(1983—),男,漢族,上海人,副教授,博士,研究方向:計(jì)算機(jī)移動(dòng)通信。