Pandas 绘制Groupby对象中每个组的大小

Pandas 绘制Groupby对象中每个组的大小

Pandas是一个强大的Python库,主要用于数据分析。由于它包含了大量复杂的数值数据集,很难理解,因此我们需要绘制这些数据集,以便更容易地可视化给定数据集中的关系。Python提供了多个库,如Matplotlib、Plotly和Seaborn,可以轻松地从给定的数据中创建信息图表。在本文中,我们将展示如何绘制Pandas中Groupby对象中每个组的大小。

Python程序绘制Groupby对象中每个组的大小

为了绘制每个组的大小,我们将使用以下Python库:

  • Matplotlib

  • Seaborn

  • Plotly

让我们通过示例程序来讨论它们在绘制Pandas DataFrame的每个组大小方面的实际实现。

使用Matplotlib

Matplotlib是最古老且最广泛使用的Python绘图库。它提供了一个低级接口,可以对图形的每个方面进行完全控制,例如坐标轴、标签、图例、颜色、标记等等。我们还可以将其与其他库(如NumPy和Pandas)结合使用,以绘制来自各种源的数据。

示例1

下面的示例说明了如何使用matplotlib和groupby对象来绘制指定组的大小。

方法

  • 导入pandas库并将其命名为’pd’,从matplotlib库导入pyplot模块并将其命名为plt。

  • 创建一个包含两列’Group_name’和’Values’的字典数据。

  • 将此字典传递给Pandas的DataFrame()方法,以创建一个名为’df’的DataFrame。

  • 现在,使用groupby()方法按’Group_name’列对DataFrame进行分组。然后调用size()方法以获取每个组的大小。结果对象是一个groupby对象,将存储在’group_sizes’中。

  • 在’group_sizes’对象上调用plot()方法,指定kind=’bar’以创建一个条形图。然后,使用一些内置方法设置x轴标签、y轴标签和图表标题。

  • 最后,调用show()方法显示图表。

import pandas as pd
import matplotlib.pyplot as plt
# Creating a user-defined DataFrame
data = {'Group_name': ['A', 'A', 'B', 'B', 'B', 'C'],
      'Values': [10, 12, 30, 14, 50, 16] }
df = pd.DataFrame(data)
# using groupby() method and getting the size
group_sizes = df.groupby('Group_name').size()
# to plot the size of group using Matplotlib
group_sizes.plot(kind='bar')
plt.xlabel('Group Name')
plt.ylabel('Sizes')
plt.title('Graph Showing Group Sizes')
plt.show()

输出

Pandas 绘制Groupby对象中每个组的大小

使用Seaborn

它是建立在Matplotlib的pyplot模块之上的,提供了一个更高级的接口,用于数据可视化,配有更好的颜色调色板和网格布局。

示例2

在下面的示例中,我们将使用seaborn与groupby对象一起绘制指定组的大小。

方法

  • 导入pandas和seaborn库,分别使用引用名称pd和sns。

  • 与之前的代码类似,创建一个包含两列’Group_name’和’Values’的字典数据。

  • 然后,将这个字典传递给Pandas的DataFrame()方法,创建一个名为’df’的DataFrame。

  • 使用groupby()方法,按’Group_name’列对DataFrame进行分组。然后,调用size()方法来获取每个分组的大小。在这里,我们将使用一个名为’reset_index()’的附加方法,将结果转换为一个具有’Group_name’和’Size’列的DataFrame。生成的对象是一个存储在’group_sizes’中的groupby对象。

  • 现在,使用Seaborn的内置方法barplot()创建一个条形图。我们将group_sizes DataFrame作为数据参数传递。我们将x轴列名指定为’Group_name’,y轴列名指定为’Sizes’。

  • 然后,使用一些内置方法设置x轴标签、y轴标签和图表标题。

  • 最后,调用show()方法显示图表。

import pandas as pd
import seaborn as sns
# Creating a user-defined DataFrame
data = {'Group_name': ['A', 'A', 'B', 'B', 'B', 'C'],
        'Values': [1, 2, 3, 4, 5, 6] }
df = pd.DataFrame(data)
# using groupby() method and getting the size
group_sizes = df.groupby('Group_name').size().reset_index(name='Size')
# to plot the size of group using Seaborn
sns.barplot(data=group_sizes, x='Group_name', y='Size')
plt.xlabel('Group Name')
plt.ylabel('Sizes')
plt.title('Group Sizes')
plt.show() # to show the result

输出

Pandas 绘制Groupby对象中每个组的大小

使用Plotly

使用Plotly相比前两个库的优点在于其交互性,使我们能够放大缩小、平移和更详细地探索图表。

示例3

在这个示例中,我们将修改前一个示例中的代码,使用Plotly和groupby()来绘制指定组的大小。

import pandas as pd
import plotly.express as px
# Creating a user-defined DataFrame
data = {'Group_name': ['A', 'A', 'B', 'B', 'B', 'C'],
        'Values': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# using groupby() method and getting the size
group_sizes = df.groupby('Group_name').size().reset_index(name = 'Sizes')
# to plot the size of group using Plotly
fig = px.bar(group_sizes, x = 'Group_name', y = 'Sizes', title = 'Group Sizes', width = 500, height = 350)
fig.show() # to show the result

输出

Pandas 绘制Groupby对象中每个组的大小

在上述代码中,我们使用了Plotly Express的’bar()’方法创建了一个条形图。我们将group_sizes DataFrame作为第一个参数传递。我们将x轴列名指定为’Group_name’,y轴列名指定为’Sizes’,图表标题指定为’Group Sizes’。我们调用fig.show()来显示图表,而不是plt.show()。

结论

在本文中,我们讨论了三种在Pandas DataFrame的groupby对象中绘制每个组大小的方法。这三种方法是matplotlib、seaborn和plotly。它们是最流行和广泛使用的绘图库。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记