導航:首頁 > 編程語言 > 如何從多個維度分析python

如何從多個維度分析python

發布時間:2023-09-20 00:21:13

python可以做哪些數據分析

1、檢查數據表
Python中使用shape函數來查看數據表的維度,也就是行數和列數。你可以使用info函數查看數據表的整體信息,使用dtypes函數來返回數據格式。Isnull是Python中檢驗空值的函數,你可以對整個數據表進行檢查,也可以單獨對某一列進行空值檢查,返回的結果是邏輯值,包含空值返回True,不包含則返回False。使用unique函數查看唯一值,使用Values函數用來查看數據表中的數值。
2、數據表清洗
Python中處理空值的方法比較靈活,可以使用Dropna函數用來刪除數據表中包含空值的數據,也可以使用fillna函數對空值進行填充。Python中dtype是查看數據格式的函數,與之對應的是astype函數,用來更改數據格式,Rename是更改列名稱的函數,drop_plicates函數刪除重復值,replace函數實現數據替換。
3、數據預處理
數據預處理是對清洗完的數據進行整理以便後期的統計和分析工作,主要包括數據表的合並、排序、數值分列、數據分組及標記等工作。在Python中可以使用merge函數對兩個數據表進行合並,合並的方式為inner,此外還有left、right和outer方式。使用ort_values函數和sort_index函數完成排序,使用where函數完成數據分組,使用split函數實現分列。
4、數據提取
主要是使用三個函數:loc、iloc和ix,其中loc函數按標簽值進行提取,iloc按位置進行提取,ix可以同時按標簽和位置進行提取。除了按標簽和位置提起數據以外,還可以按具體的條件進行數據,比如使用loc和isin兩個函數配合使用,按指定條件對數據進行提取。
5、數據篩選匯總
Python中使用loc函數配合篩選條件來完成篩選功能,配合sum和 count函數還能實現excel中sumif和countif函數的功能。Python中使用的主要函數是groupby和pivot_table。groupby是進行分類匯總的函數,使用方法很簡單,制定要分組的列名稱就可以,也可以同時制定多個列名稱,groupby 按列名稱出現的順序進行分組。

Ⅱ python數據分析項目:用戶消費行為分析

為了創造更多利潤、實現數據驅動運營,某CD網站擬對18個月以來的近7萬條消費數據進行分析。具體的研究思路如下:

新增['month']列,便於後續按月分析。

重新查看,此時的時間列已轉換為正常格式。

由上圖可知,

接下來我們用之前清洗好的欄位進行數據分析。

前三個月消費訂單數在10000筆左右,後續月份的平均則在2500筆。

前三個月產品購買數在20000以上,後續月份的產品購買量在6000~8000左右 。

前三個月每月的消費人數在8000-10000之間,後續月份平均消費人數在2000人不到

上述消費趨勢的分析可以通過數據透視表分析(不建議數據透視表進行去重操作)

本章小結——
趨勢分析:總體來看,消費總金額、消費次數、產品購買量、消費人數的趨勢想似:均先上升、下跌、趨於平穩並下降。
可以看出網站的流失用戶在增加,採用開源(拉新)節流(留存)的運營方式,來增加銷售收入。

上一部分是按月分析,主要看趨勢;本部分按用戶個體分析,來看消費能力。

按用戶消費金額進行降序排列,由圖可知,共計約25000個用戶:

啟發,只要維護好這5000個用戶(佔比20%)就可以把業績KPI完成70%,如果能把5000個用戶運營的更好就可以佔比更高。

通過以上基本數據描述分析可以清楚該網站整體的消費趨勢和用戶消費能力,現在進一步挖掘用戶消費行為數據,通過RFM模型、生命周期等方法對用戶進行分層,為後續運營管理提供依據。

首購可以進一步依渠道劃分,衡量不同渠道的差異性,從而量化渠道能力,為後期渠道優化提供依據。

用戶第一次購買分布,集中在前三個月(1997年1-3月);其中,在2月11日至2月25日有一次劇烈波動

由圖可知,1997年1-4月新用戶數量由90%跌落至80%以下;之後幾個月的新用戶量保持在80~82%區間。

RFM是一個經典的用戶分類模型,模型利用通用交易環節中最核心的三個維度——最近消費(Recency)、消費頻率(Frequency)、消費金額(Monetary)細分用戶群體,從而分析不同群體的用戶價值,最終達到精準營銷。

RFM從3個維度、分2個等級(均值)得到8類用戶分層。

通過RFM模型,把用戶分為8個類別,分別給用戶打標簽、將客戶分為重要價值、重要保持、重要挽留、重要發展、一般價值、一般保持、一般保留、一般發展8類客戶。

從RFM分層可知,本網站的大部分用戶為一般挽留客戶(可適當放棄這部分低價值客戶、也可進一步提高活躍度)、重要保持客戶(企業優質的客戶群,採用會員制運營)。具體運營策略依據參照如下:

為了避免劃分用戶群體過多(RFM從3個維度、分2個等級得到8類用戶分層的數據立方),可能導致針對性的營銷成本負擔上升;下面將通過聚類方法,基於RFM模型劃分成4類用戶,更快實現後期用戶管理。

顯然,歸一化預處理後,當n=2時,輪廓系數取最大值0.79,僅從模型聚類效果來講分2類合適;而標准正態化預處理後顯示,分4類的輪廓系數最大,達0.6964(但2-7類的輪廓系數整理差別波動不大)

參考漏斗模型,針對每個用戶,按18個月內的每個月對用戶情況進行分類,即新用戶、活躍用戶、迴流用戶、流失用戶。
通過下面的數據透視表即可得到每個用戶每個月的購買情況,從而進行轉化分析。

若本月無消費(即為0)

若本月有消費(即為1)

由上表可知,每月的用戶消費狀態變化

Ⅲ Python數據分析(八):農糧組織數據集探索性分析(EDA)

這里我們用 FAO(Food and Agriculture Organization) 組織提供的數據集,練習一下如何利用python進行探索性數據分析。

我們先導入需要用到的包

接下來,載入數據集

看一下數據量,

看一下數據的信息,

我們先來看一下variable,variable_full這兩列的信息,

看一下統計了多少國家,

看一下有多少個時間周期,

看一下時間周期有哪些,

我們看一下某一列某個指標的缺失值的個數,比如variable是total_area時缺失值的個數,

我們通過幾個維度來進行數據的分析:

我們按照上面的處理繼續,現在我們想統計一下對於一個時間周期來說,不同國家在這個周期內的變化情況,

我們也可以按照國家分類,查看某個國家在不同時期的變化,

我們還可以根據屬性,查看不同國家在不同周期內的變化情況,

我們還可以給定國家和指標,查看這個國家在這個指標上的變化情況,

我們還有region(區域)沒有查看,我們來看一下:

通過上圖可以看出,區域太多,不便於觀察,我們可以將一些區域進行合並。減少區域數量有助於模型評估,可以創建一個字典來查找新的,更簡單的區域(亞洲,北美洲,南美洲,大洋洲)

我們來看一下數據變化,

緊接著上面的數據處理,我們重新導入一下包,這次有一些新包,

我們看一下水資源的情況,

通過上圖可以看出只有一小部分國家報告了可利用的水資源總量,這些國家中只有極少數國家擁有最近一段時間的數據,我們將刪除變數,因為這么少的數據點會導致很多問題。

接下來我們看一下全國降雨指數,

全國降雨在2002年以後不再報到,所以我們也刪除這個數據,

我們單獨拿出一個洲來進行分析,舉例南美洲,我們來看一下數據的完整性,

我們也可以指定不同的指標,

接下來,我們使用 pandas_profiling 來對單變數以及多變數之間的關系進行統計一下,

這里我們要計算的是,比如

我們按照 rural_pop 從小到大進行排序,發現的確有幾個國家的農村人口是負數,

人口數目是不可能小於0,所以這說明數據有問題,存在臟數據,如果做分析預測時,要注意將這些臟數據處理一下。

接下來我們看一下偏度,我們規定,

正態分布的偏度應為零,負偏度表示左偏,正偏表示右偏。

偏度計算完後,我們計算一下峰度, 峰度也是一個正態分布,峰度不能為負,只能是正數 ,越大說明越陡峭,

接下來我們看一下,如果數據分布非常不均勻該怎麼辦呢,

上圖是2013-2017年國家總人數的分布,通過上圖我們發現,人口量少於200000(不考慮單位)的國家非常多,人口大於1200000的國家非常少,如果我們需要建模的話,這種數據我們是不能要的。這個時候我們應該怎麼辦呢?

通常,遇到這種情況,使用 log變換 將其變為正常。 對數變換 是數據變換的一種常用方式,數據變換的目的在於使數據的呈現方式接近我們所希望的前提假設,從而更好的進行統計推斷。

接下來,我們用log轉換一下,並看一下它的偏度和峰值,

可以看出偏度下降了很多,減少了傾斜。

可以發現峰度也下降了,接下來我們看一下經過log轉換後的數據分布,

雖然數據還有一些偏度,但是明顯好了很多,呈現的分布也比較標准。

首先我們先來看一下美國的人口總數隨時間的變化,

接下來,我們查看北美洲每個國家人口總數隨著時間的變化,

這個時候我們發現,一些國家由於人口數量本身就少,所以整個圖像顯示的不明顯,我們可以改變一下參照指標,那我們通過什麼標准化?我們可以選擇一個國家的最小、平均、中位數、最大值...或任何其他位置。那我們選擇最小值,這樣我們就能看到每個國家的起始人口上的增長。

我們也可以用熱度圖來展示,用顏色的深淺來比較大小關系,

接下來我們分析一下水資源的分布情況,

我們可以進行一下log轉換,

我們用熱度圖畫一下,

連續值可以畫成散點圖,方便觀看,
我們來看一下隨著季節變化,人均GDP的變化情況,

相關程度:
相關度量兩個變數之間的線性關系的強度,我們可以用相關性來識別變數。

現在我們單獨拿出來一個指標分析是什麼因素與人均GDP的變化有關系,正相關就是積極影響,負相關就是消極影響。

當我們在畫圖的時候也可以考慮一下利用bined設置一下區間,比如說連續值我們可以分成幾個區間進行分析,這里我們以人均GDP的數量來進行分析,我們可以將人均GDP的數據映射到不同的區間,比如人均GDP比較低,比較落後的國家,以及人均GDP比較高,比較發達的國家,這個也是我們經常需要的操作,

做一下log變換,這里是25個bin

我們指定一下分割的標准,

我們還可以看一下人均GDP較低,落後國家的內部數據,下面我們看一下內部數據分布情況,用boxplot進行畫圖,

對於這部分的分布,我們還可以統計看一下其他指標,如下圖所示,我們還可以看一下洪水的統計信息,

Ⅳ 數據分析員用python做數據分析是怎麼回事,需要用到python中的那些內容,具體是怎麼操作的

大數據!大數據!其實是離不開數據二字,但是總體來講,自己之前對數據的認知是不太夠的,更多是在關注技術的提升上。換句話講,自己是在做技術,這些技術處理的是數據,而不能算是自己是在做數據的。大規模數據的處理是一個非常大的課題,但是這一點更偏向於是搞技術的。

與數據分析相關的Python庫很多,比如Numpy、pandas、matplotlib、scipy等,數據分析的操作包括數據的導入和導出、數據篩選、數據描述、數據處理、統計分析、可視化等等。接下來我們看一下如何利用Python完成數據的分析。
生成數據表
常見的生成方法有兩種,第一種是導入外部數據,第二種是直接寫入數據,Python支持從多種類型的數據導入。在開始使用Python進行數據導入前需要先導入pandas庫,為了方便起見,我們也同時導入Numpy庫。代碼是最簡模式,裡面有很多可選參數設置,例如列名稱、索引列、數據格式等等。
檢查數據表
Python中使用shape函數來查看數據表的維度,也就是行數和列數。你可以使用info函數查看數據表的整體信息,使用dtypes函數來返回數據格式。Isnull是Python中檢驗空值的函數,你可以對整個數據表進行檢查,也可以單獨對某一列進行空值檢查,返回的結果是邏輯值,包含空值返回True,不包含則返回False。使用unique函數查看唯一值,使用Values函數用來查看數據表中的數值。
數據表清洗
Python中處理空值的方法比較靈活,可以使用Dropna函數用來刪除數據表中包含空值的數據,也可以使用fillna函數對空值進行填充。Python中dtype是查看數據格式的函數,與之對應的是astype函數,用來更改數據格式,Rename是更改列名稱的函數,drop_plicates函數刪除重復值,replace函數實現數據替換。
數據預處理
數據預處理是對清洗完的數據進行整理以便後期的統計和分析工作,主要包括數據表的合並、排序、數值分列、數據分組及標記等工作。在Python中可以使用merge函數對兩個數據表進行合並,合並的方式為inner,此外還有left、right和outer方式。使用ort_values函數和sort_index函數完成排序,使用where函數完成數據分組,使用split函數實現分列。
數據提取
主要是使用三個函數:loc、iloc和ix,其中loc函數按標簽值進行提取,iloc按位置進行提取,ix可以同時按標簽和位置進行提取。除了按標簽和位置提起數據以外,還可以按具體的條件進行數據,比如使用loc和isin兩個函數配合使用,按指定條件對數據進行提取。
數據篩選匯總
Python中使用loc函數配合篩選條件來完成篩選功能,配合sum和 count函數還能實現excel中sumif和countif函數的功能。Python中使用的主要函數是groupby和pivot_table。groupby是進行分類匯總的函數,使用方法很簡單,制定要分組的列名稱就可以,也可以同時制定多個列名稱,groupby 按列名稱出現的順序進行分組。

Ⅳ 如何用python進行數據分析

1、Python數據分析流程及學習路徑

數據分析的流程概括起來主要是:讀寫、處理計算、分析建模和可視化四個部分。在不同的步驟中會用到不同的Python工具。每一步的主題也包含眾多內容。

根據每個部分需要用到的工具,Python數據分析的學習路徑如下:

相關推薦:《Python入門教程》

2、利用Python讀寫數據

Python讀寫數據,主要包括以下內容:

我們以一小段代碼來看:

可見,僅需簡短的兩三行代碼即可實現Python讀入EXCEL文件。

3、利用Python處理和計算數據

在第一步和第二步,我們主要使用的是Python的工具庫NumPy和pandas。其中,NumPy主要用於矢量化的科學計算,pandas主要用於表型數據處理。

4、利用Python分析建模

在分析和建模方面,主要包括Statsmdels和Scikit-learn兩個庫。

Statsmodels允許用戶瀏覽數據,估計統計模型和執行統計測試。可以為不同類型的數據和每個估算器提供廣泛的描述性統計,統計測試,繪圖函數和結果統計列表。

Scikit-leran則是著名的機器學習庫,可以迅速使用各類機器學習演算法

5、利用Python數據可視化

數據可視化是數據工作中的一項重要內容,它可以輔助分析也可以展示結果。

Ⅵ python數據分析模塊:numpy、pandas全解


一維數組情況:

二維數組情況:

3參數情況:

2參數情況:

1參數情況:

一維情況:

二維情況:

一維情況:

二維情況:

一維情況:

二維情況:第三個參數指定維度

只查看行數、或者列數

逗號隔開兩個索引

某些行

某些列

可以看出append()函數在二維數組中添加元素,結果轉為了一維數組。

那怎麼保持二維數組呢?可以設置axis參數按行或者按列添加

可以看出先把二維數組降成了一維數組,再在索引為1的位置添加元素。

那麼怎麼保持在二維添加元素呢? 同樣設置axis參數

也分按行和按列刪除

標記缺失值: isnan()函數

補充缺失值:

同樣axis參數可以指定拼接按行還是按列

2. hstack()函數:以水平堆疊的方式拼接數組

3. vstack()函數:以垂直堆疊的方式拼接數組

第二個參數還可以是數組,指定拆分的位置

hsplit()函數:橫向拆成幾個數組

vsplit()函數:縱向拆成幾個數組

數組與數組之間的運算

數組與數值的運算

可以指定整個數組求和,還是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有兩個重要的數據結構對象:Series和DataFrame。

Series是創建一個一維數組對象,會自動生成行標簽。

會自動生成行列標簽

也可以用字典形式生成數據

在用字典生成數據的基礎上,同時指定行標簽

例如對下表的數據進行讀取

4月是第四個表,我們應把sheet_name參數指定為3;因為索引是從0開始的。

可以看出read_excel()函數自動創建了一個DataFrame對象,同時自動把第一行數據當做列標簽。

可以看出不給出header參數時,該參數默認為0。

header=1時結果如下:

header=None時結果如下:

index_col=0時,第0列為列標簽

index_col=0時

usecols=[2]:指定第二列

指定多列

數據如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-j1SHxY8y-1637655972909)(C: ypora-user-imagesimage-20211114192949607.png)]

nrows=3時

head()函數中參數為空默認前5行

指定head(3)時如下

numpy模塊也是shape

查看特定列的書庫類型

特定列數據類型轉換

先查看一下所有數據

與單行相比,結果顯示的格式不一樣了

iloc()挑選:

或者給出區間

挑選數據要麼標簽,要麼索引挑選

或者

或者寫成區間

標簽挑選

或者索引挑選

先查看一下數據

或者用字典一對一修改

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a6QKIoie-1637655972912)(C: ypora-user-imagesimage-20211123110431201.png)]

isin()函數查看錶中是否有該值

查看特定列是否有該值

可以看出上述代碼並沒有替換,那怎麼替換呢?

末尾插入一列

指定插入到哪列

axis參數可以指定刪除行還是刪除列

指定標簽刪除

指定索引刪除

方法三

指定行標簽刪除

指定索引刪除

方法三:

先查看所有數據

info()函數查看數據類型,還可以查看是否有缺失值

isnull()函數查看是否有缺失值

在numpy模塊中用isnan()函數

刪除有缺失值的行

刪除整行都為缺失值的行: 需要指定how參數

不同列的缺失值設置不同的填充值

默認保留第一個重復值所在的行,刪除其他重復值所在的行

保留第一個重復值所在的行

保留最後一個重復值所在的行

是重復的就刪除

降序如下

參數指定first時,表示在數據有重復值時,越先出現的數據排名越靠前

獲取產品為單肩包的行數據

獲取數量>60的行數據

獲取產品為單肩包 且 數量>60 的行數據

獲取產品為單肩包 或 數量>60 的行數據

stack()函數轉換成樹形結構

how參數指定外連接

on參數指定按哪一列合並

concat()函數採用 全連接 的方式,沒有的數設置為缺失值

重置行標簽

效果與concat()一樣

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

獲取單列的

corr()函數獲取相關系數

獲取指定列與其他列的相關系數

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-46g9qgQw-1637655972913)(C: ypora-user-imagesimage-20211123135643804.png)]

groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。

分組後獲取指定列的匯總情況

獲取多列的匯總情況

獲取多列的情況

ta = pd.read_excel(『相關性分析.xlsx』)

print(data)

corr()函數獲取相關系數

獲取指定列與其他列的相關系數

[外鏈圖片轉存中…(img-46g9qgQw-1637655972913)]

groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。

分組後獲取指定列的匯總情況

獲取多列的匯總情況

獲取多列的情況






閱讀全文

與如何從多個維度分析python相關的資料

熱點內容
不玩手機APP怎麼開啟警報 瀏覽:560
打開微信收付款加密 瀏覽:400
小度app怎麼關閉看護助手 瀏覽:739
伺服器方舟boss屬性怎麼調 瀏覽:345
acos系統終端命令 瀏覽:915
寧德雲伺服器最新行情 瀏覽:475
壓縮性骨折五十天 瀏覽:656
如何在伺服器里把方塊替換 瀏覽:909
變頻空調摘板用什麼替代壓縮機 瀏覽:46
怎麼在蘋果手機上玩安卓和平精英 瀏覽:237
python非同步調用框架 瀏覽:963
安卓手機如何拍live圖 瀏覽:823
供應鏈管理系統源碼 瀏覽:944
方舟編譯器會適配哪些型號 瀏覽:470
主流雲伺服器哪個牌子好 瀏覽:267
導航怎麼看伺服器在那 瀏覽:932
廣石化單片機 瀏覽:281
和教育連接伺服器失敗是什麼原因 瀏覽:1003
建行app怎麼存定期 瀏覽:830
mc伺服器地址183 瀏覽:73