使用Pandas實(shí)現(xiàn)可視化帶有標(biāo)簽列的數(shù)據(jù)表
使用Pandas可視化帶有標(biāo)簽列的數(shù)據(jù)表
Pandas是Python中一個(gè)靈活強(qiáng)大的數(shù)據(jù)處理庫(kù)。它提供了大量數(shù)據(jù)操作和分析工具,并整合了Matplotlib和Seaborn等數(shù)據(jù)可視化庫(kù)的功能,這使得數(shù)據(jù)的可視化變得更加容易。
在本文中,我們將討論如何使用Pandas可視化帶有標(biāo)簽列的數(shù)據(jù)表,以便更好地呈現(xiàn)和傳達(dá)數(shù)據(jù)的信息。
準(zhǔn)備數(shù)據(jù)
本文以如下圖所示的Excel表為例。
這是一張典型的日志記錄表,每1行依次記錄了哪一天(p_date)、產(chǎn)生哪種行為(action_type)的用戶數(shù)(pv)和獨(dú)立用戶數(shù)(uv)。
這張表是按照關(guān)系型數(shù)據(jù)庫(kù)的范式存儲(chǔ)的,也就是說(shuō),這不是一張寬表,沒(méi)有把action_type
的所有取值和pv
、uv
組合起來(lái)作為列,即只有action_type
、pv
、uv
這3列,而不是action_type_A_pv
、action_type_B_pv
、……、action_type_A_uv
、action_type_B_uv
……這一系列字段。
表中的action_type
就是標(biāo)簽列。下面我們就來(lái)看看如何根據(jù)這個(gè)標(biāo)簽列的取值,將這張數(shù)據(jù)表拆分為若干張小表,并分別繪制折線圖。
使用Pandas進(jìn)行可視化
在可視化之前,我們先對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)要的概覽,以了解數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。使用了Pandas以后就無(wú)需啟動(dòng)Excel了。
# pip3 install openpyxl # pip3 install pandas # pip3 install matplotlib import matplotlib.pyplot as plt import pandas as pd # 從Excel文件讀取數(shù)據(jù) df = pd.read_excel('demo.xlsx') # 顯示列標(biāo)題和前幾行數(shù)據(jù) print(df.head()) # 使用groupby按'action_type'列拆分DataFrame grouped = df.groupby('action_type') # 遍歷分組,并打印每個(gè)分組的數(shù)據(jù) for group_name, group_df in grouped: print(group_name) print(group_df[:2]) print("========")
上面代碼的運(yùn)行結(jié)果如下所示:
p_date action_type pv uv
0 20240107 Action_A 209432 175390
1 20231205 Action_B 2219974 1511501
2 20231218 Action_A 68196 61948
3 20240111 Action_C 16624897 4379832
4 20231222 Action_C 2960038 1948306
Action_A
p_date action_type pv uv
0 20240107 Action_A 209432 175390
2 20231218 Action_A 68196 61948
========
Action_B
p_date action_type pv uv
1 20231205 Action_B 2219974 1511501
5 20240106 Action_B 6670116 2993844
========
Action_C
p_date action_type pv uv
3 20240111 Action_C 16624897 4379832
4 20231222 Action_C 2960038 1948306
========
Action_D
p_date action_type pv uv
35 20231124 Action_D 7145549 5891077
43 20231125 Action_D 8258851 5954404
========
接下來(lái),我們可以使用Pandas的plot
方法結(jié)合Matplotlib進(jìn)行簡(jiǎn)單的折線圖可視化,
# 繪制每個(gè)分組的數(shù)據(jù) for group_name, group_df in grouped: # 按'p_date'列排序 group_df = group_df.sort_values(by='p_date') # 將'p_date'列轉(zhuǎn)換為日期格式(yyyymmdd) group_df['p_date'] = pd.to_datetime(group_df['p_date'], format='%Y%m%d') # 繪圖 group_df.plot(x='p_date', y=['pv', 'uv'], title=group_name) # 將y軸的數(shù)字格式化為千分位 ax = plt.gca() ax.get_yaxis().set_major_formatter( plt.FuncFormatter(lambda x, loc: "{:,}".format(int(x))) ) # 顯示圖形 plt.show()
運(yùn)行結(jié)果如下,每種action_type
一張折線圖。
通過(guò)使用Pandas的可視化功能,能夠更好地理解和傳達(dá)數(shù)據(jù)的信息。例如,從折線圖中,我們可以看到用戶數(shù)突然激增。
在實(shí)際的數(shù)據(jù)分析項(xiàng)目中,結(jié)合Pandas的數(shù)據(jù)操作和Matplotlib、Seaborn等庫(kù)的可視化功能,我們可以更深入地探索數(shù)據(jù),識(shí)別趨勢(shì),發(fā)現(xiàn)異常,以支持更有洞察力的決策過(guò)程。
作者:胡譯胡說(shuō)
鏈接:https://juejin.cn/post/7330471268032856074
來(lái)源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
到此這篇關(guān)于使用Pandas實(shí)現(xiàn)可視化帶有標(biāo)簽列的數(shù)據(jù)表的文章就介紹到這了,更多相關(guān)Pandas可視化數(shù)據(jù)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中出現(xiàn)"No?module?named?'requests'"
這篇文章主要給大家介紹了關(guān)于Python中出現(xiàn)"No?module?named?'requests'"的解決辦法,"No?module?named?requests"是Python報(bào)錯(cuò)提示,意味著你在使用某個(gè)Python程序或腳本時(shí),沒(méi)有找到名為requests的模塊,需要的朋友可以參考下2023-11-11python求最大公約數(shù)和最小公倍數(shù)的簡(jiǎn)單方法
在本篇文章里小編給大家整理的是關(guān)于python求最大公約數(shù)和最小公倍數(shù)的簡(jiǎn)單方法,需要的朋友們學(xué)習(xí)下。2020-02-02Caffe卷積神經(jīng)網(wǎng)絡(luò)solver及其配置詳解
這篇文章主要為大家介紹了Caffe卷積神經(jīng)網(wǎng)絡(luò)solver及其配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06python修改字典內(nèi)key對(duì)應(yīng)值的方法
這篇文章主要介紹了python修改字典內(nèi)key對(duì)應(yīng)值的方法,涉及Python中字典賦值的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07對(duì)python GUI實(shí)現(xiàn)完美進(jìn)度條的示例詳解
今天小編就為大家分享一篇對(duì)python GUI實(shí)現(xiàn)完美進(jìn)度條的示例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python獲取文件版本信息、公司名和產(chǎn)品名的方法
這篇文章主要介紹了python獲取文件版本信息、公司名和產(chǎn)品名的方法,是Python程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10python遍歷 truple list dictionary的幾種方法總結(jié)
下面小編就為大家?guī)?lái)一篇python遍歷 truple list dictionary的幾種方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09如何解決jupyter notebook無(wú)法導(dǎo)入自己安裝的包
這篇文章主要介紹了如何解決jupyter notebook無(wú)法導(dǎo)入自己安裝的包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07