如何从 Pandas DataFrame 创建直方图?

如何从 Pandas DataFrame 创建直方图?

直方图是数据集分布的图形表示。它是一个强大的工具,用于可视化数据集的形状、分散程度和中心趋势。直方图通常用于数据分析、统计和机器学习,以识别数据中的模式、异常和趋势。

PandasPython 中流行的数据操作和分析库。它提供了各种函数和工具来处理结构化数据,包括读取、写入、过滤、清洗和转换数据。Pandas 也与其他数据可视化库(如 MatplotlibSeaborn 和 Plotly)很好地集成。

要从 Pandas DataFrame 创建直方图,我们首先需要提取要绘制的数据。我们可以使用其名称或索引从 DataFrame 中选择列来执行此操作。一旦我们有了数据,就可以将其传递给可视化库中的直方图函数以生成绘图。

有几种不同的可视化库的方式可以从 Pandas DataFrame 创建直方图。例如,我们可以使用 Pandas 中的 "hist" 方法、NumPy 中的 "histogram" 函数或 Seaborn 中的 "distplot" 函数。我们还可以通过更改颜色、箱数、标题、轴标签和其他属性来自定义直方图的外观。

语法

我们将使用以下语法从 Pandas DataFrame 创建直方图。

DataFrame.hist(column=None, by=None, grid=True, xlabelsize=None, xrot=None, ylabelsize=None, yrot=None, ax=None, sharex=False, sharey=False, figsize=None, layout=None, bins=10, backend=None, legend=False, **kwargs) 

解释

以下是主要参数的解释。

  • column − 要绘制的列的名称或索引。如果为None,则绘制所有列。

  • by − 要按组分组的数据列的名称或索引。如果提供,将创建多个直方图,每个组一个直方图。

  • grid − 是否在图表上显示网格线。

  • xlabelsize,xrot,ylabelsize,yrot − x轴和y轴标签的大小和旋转。

  • ax − 要在其上绘制的Matplotlib轴对象。如果为None,则创建一个新轴。

  • sharex,sharey − 是否在子图之间共享x轴或y轴。

  • figsize − 图表的尺寸,单位为英寸(宽度,高度)。

  • layout − 子图布局的行数和列数。如果提供,将忽略“by”参数。

  • bins − 直方图使用的箱数。这可以是一个整数或一个箱边序列。

  • backend − 要使用的绘图后端,例如“matplotlib”或“plotly”。

  • legend

legend 是否在图中显示图例。

现在让我们来探索一下我们将创建这些直方图的示例。

单列直方图

在Python中,单列直方图是数据集中只有一个数据列的频率分布的图形表示。考虑下面显示的代码。

import pandas as pd
import matplotlib.pyplot as plt

# 将CSV文件读取到DataFrame中
df = pd.read_csv('data.csv')

# 绘制DataFrame中单列的直方图
df.hist(column='column_name')

# 设置标题和轴标签
plt.title('Histogram of Column Name')
plt.xlabel('Values')
plt.ylabel('Frequency')

# 显示直方图
plt.show()

说明

  • 导入必要的库,包括pandas和matplotlib.pyplot。

  • 使用pd.read_csv()函数将CSV文件读取为Pandas DataFrame。

  • 使用df.hist()函数绘制DataFrame中单列的直方图。

  • 使用plt.title()、plt.xlabel()和plt.ylabel()函数设置标题和轴标签。

  • 使用plt.show()函数显示直方图。

要运行上述代码,您需要安装pandas和matplotlib库,可以使用以下命令进行安装:

pip3 install pandas matplotlib 

输出

安装成功pandas和matplotlib后,您可以执行该代码,它将生成以下直方图 −

如何从 Pandas DataFrame 创建直方图?

多列直方图

在Python中,多列直方图是数据集中具有多列数据的频率分布的图形表示。考虑下面显示的代码。

import pandas as pd
import matplotlib.pyplot as plt

# 将CSV文件读取到DataFrame中
df = pd.read_csv('data.csv')

# 绘制DataFrame中所有列的直方图
df.hist()

# 为每个直方图设置标题和轴标签
for ax in plt.gcf().axes:
   ax.set_title(ax.get_title().replace('Histogram of ', ''))
   ax.set_xlabel('Values')
   ax.set_ylabel('Frequency')

# 显示直方图
plt.show()

说明

此Python代码使用Pandas和Matplotlib读取CSV文件并绘制文件中所有列的直方图。然后,它设置每个直方图的标题和轴标签,然后在屏幕上显示它们。

输出

在执行后,它将输出以下结果 −

如何从 Pandas DataFrame 创建直方图?

结论

总之,从Pandas DataFrame创建直方图是可视化数据分布的简单有效的方法。借助Pandas和Matplotlib库的帮助,您可以快速为DataFrame中的单个或多个数据列创建直方图,自定义直方图的外观,并添加轴标签和标题以使其更具信息性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程