欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Pandas實(shí)現(xiàn)可視化帶有標(biāo)簽列的數(shù)據(jù)表

 更新時(shí)間:2024年02月02日 08:21:59   作者:胡譯胡說(shuō)  
Pandas是Python中一個(gè)靈活強(qiáng)大的數(shù)據(jù)處理庫(kù),它提供了大量數(shù)據(jù)操作和分析工具,本文我們將討論如何使用Pandas可視化帶有標(biāo)簽列的數(shù)據(jù)表,以便更好地呈現(xiàn)和傳達(dá)數(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_typepv、uv這3列,而不是action_type_A_pv、action_type_B_pv、……、action_type_A_uvaction_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)文章

最新評(píng)論