使用Pandas实现可视化带有标签列的数据表

 更新时间:2024年02月02日 08:21:59   作者:胡译胡说  
Pandas是Python中一个灵活强大的数据处理库,它提供了大量数据操作和分析工具,本文我们将讨论如何使用Pandas可视化带有标签列的数据表,以便更好地呈现和传达数据的信息,需要的可以了解下

使用Pandas可视化带有标签列的数据表

Pandas是Python中一个灵活强大的数据处理库。它提供了大量数据操作和分析工具,并整合了Matplotlib和Seaborn等数据可视化库的功能,这使得数据的可视化变得更加容易。

在本文中,我们将讨论如何使用Pandas可视化带有标签列的数据表,以便更好地呈现和传达数据的信息。

准备数据

本文以如下图所示的Excel表为例。

这是一张典型的日志记录表,每1行依次记录了哪一天(p_date)、产生哪种行为(action_type)的用户数(pv)和独立用户数(uv)。

这张表是按照关系型数据库的范式存储的,也就是说,这不是一张宽表,没有把action_type的所有取值和pvuv组合起来作为列,即只有action_typepvuv这3列,而不是action_type_A_pvaction_type_B_pv、……、action_type_A_uvaction_type_B_uv……这一系列字段。

表中的action_type就是标签列。下面我们就来看看如何根据这个标签列的取值,将这张数据表拆分为若干张小表,并分别绘制折线图。

使用Pandas进行可视化

在可视化之前,我们先对数据进行简要的概览,以了解数据的结构和内容。使用了Pandas以后就无需启动Excel了。

# pip3 install openpyxl
# pip3 install pandas
# pip3 install matplotlib

import matplotlib.pyplot as plt
import pandas as pd

# 从Excel文件读取数据
df = pd.read_excel('demo.xlsx')

# 显示列标题和前几行数据
print(df.head())

# 使用groupby按'action_type'列拆分DataFrame
grouped = df.groupby('action_type')

# 遍历分组,并打印每个分组的数据
for group_name, group_df in grouped:
    print(group_name)
    print(group_df[:2])
    print("========")

上面代码的运行结果如下所示:

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
========

接下来,我们可以使用Pandas的plot方法结合Matplotlib进行简单的折线图可视化,

# 绘制每个分组的数据
for group_name, group_df in grouped:
    # 按'p_date'列排序
    group_df = group_df.sort_values(by='p_date')
    # 将'p_date'列转换为日期格式(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轴的数字格式化为千分位
    ax = plt.gca()
    ax.get_yaxis().set_major_formatter(
        plt.FuncFormatter(lambda x, loc: "{:,}".format(int(x)))
    )

# 显示图形
plt.show()

运行结果如下,每种action_type一张折线图。

通过使用Pandas的可视化功能,能够更好地理解和传达数据的信息。例如,从折线图中,我们可以看到用户数突然激增。

在实际的数据分析项目中,结合Pandas的数据操作和Matplotlib、Seaborn等库的可视化功能,我们可以更深入地探索数据,识别趋势,发现异常,以支持更有洞察力的决策过程。

作者:胡译胡说
链接:https://juejin.cn/post/7330471268032856074
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

到此这篇关于使用Pandas实现可视化带有标签列的数据表的文章就介绍到这了,更多相关Pandas可视化数据表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python验证的50个常见正则表达式

    Python验证的50个常见正则表达式

    这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python3实现斐波那契数列(4种方法)

    python3实现斐波那契数列(4种方法)

    这篇文章主要介绍了python3实现斐波那契数列(4种方法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python面向对象多态实现原理及代码实例

    Python面向对象多态实现原理及代码实例

    这篇文章主要介绍了Python面向对象多态实现原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 深入理解Django-Signals信号量

    深入理解Django-Signals信号量

    这篇文章主要介绍了深入理解Django-Signals信号量,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • python爬取豆瓣电影TOP250数据

    python爬取豆瓣电影TOP250数据

    这次以豆瓣电影TOP250网为例编写一个爬虫程序,并将爬取到的数据(排名、电影名和电影海报网址)存入MySQL数据库中。
    2021-05-05
  • wxPython中listbox用法实例详解

    wxPython中listbox用法实例详解

    这篇文章主要介绍了wxPython中listbox用法,以实例形式较为详细的分析了Python使用wxPython中listbox的相关技巧,需要的朋友可以参考下
    2015-06-06
  • Python过滤掉numpy.array中非nan数据实例

    Python过滤掉numpy.array中非nan数据实例

    这篇文章主要介绍了Python过滤掉numpy.array中非nan数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Django和Ueditor自定义存储上传文件的文件名

    Django和Ueditor自定义存储上传文件的文件名

    这篇文章主要介绍了Django和Ueditor自定义存储上传文件的文件名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python GUI教程之在PyQt5中使用数据库的方法

    Python GUI教程之在PyQt5中使用数据库的方法

    Qt平台对SQL编程有着良好的支持,PyQt5也一并继承了过来,这篇文章主要介绍了Python GUI教程之在PyQt5中使用数据库的方法,需要的朋友可以参考下
    2021-09-09
  • Python曲线拟合多项式深入详解

    Python曲线拟合多项式深入详解

    这篇文章主要给大家介绍了关于Python使用scipy进行曲线拟合的相关资料,Scipy优化和拟合采用的是optimize模块,该模块提供了函数最小值(标量或多维)、曲线拟合和寻找等式的根的有用算法,需要的朋友可以参考下
    2022-11-11

最新评论