如何從 Pandas DataFrame 建立直方圖?
直方圖是資料集分佈的圖形表示。它是視覺化資料集的形狀、擴充套件和集中趨勢的強大工具。直方圖常用於資料分析、統計和機器學習,以識別資料中的模式、異常和趨勢。
Pandas 是 Python 中一個流行的資料操作和分析庫。它提供各種功能和工具來處理結構化資料,包括讀取、寫入、過濾、清理和轉換資料。Pandas 還與其他資料視覺化庫(如 Matplotlib、Seaborn 和 Plotly)很好地整合。
要從 Pandas DataFrame 建立直方圖,我們首先需要提取要繪製的資料。我們可以透過使用其名稱或索引從 DataFrame 中選擇列來實現。獲得資料後,我們可以將其傳遞給視覺化庫中的直方圖函式以生成繪圖。
使用不同的視覺化庫,有幾種方法可以從 Pandas DataFrame 建立直方圖。例如,我們可以使用 Pandas 的“hist”方法、NumPy 的“histogram”函式或 Seaborn 的“distplot”函式。我們還可以透過更改顏色、bin、標題、軸標籤和其他屬性來自定義直方圖的外觀。
語法
我們將使用以下語法從 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 − 直方圖要使用的 bin 數。這可以是整數或 bin 邊緣的序列。
backend − 要使用的繪圖後端,例如“matplotlib”或“plotly”。
legend − 是否在繪圖上顯示圖例。
現在讓我們探索一些示例,我們將在此示例中建立這些直方圖。
單列直方圖
Python 中的單列直方圖是僅包含一列資料的頻率分佈的圖形表示。請考慮以下程式碼。
import pandas as pd
import matplotlib.pyplot as plt
# Read the CSV file into a DataFrame
df = pd.read_csv('data.csv')
# Plot a histogram of a single column in the DataFrame
df.hist(column='column_name')
# Set the title and axis labels
plt.title('Histogram of Column Name')
plt.xlabel('Values')
plt.ylabel('Frequency')
# Display the histogram
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 後,您可以執行程式碼,它將生成以下直方圖:

多列直方圖
Python 中的多列直方圖是包含多列資料的頻率分佈的圖形表示。請考慮以下程式碼。
import pandas as pd
import matplotlib.pyplot as plt
# Read the CSV file into a DataFrame
df = pd.read_csv('data.csv')
# Plot histograms of all columns in the DataFrame
df.hist()
# Set the title and axis labels for each histogram
for ax in plt.gcf().axes:
ax.set_title(ax.get_title().replace('Histogram of ', ''))
ax.set_xlabel('Values')
ax.set_ylabel('Frequency')
# Display the histograms
plt.show()
解釋
此 Python 程式碼讀取 CSV 檔案並使用 Pandas 和 Matplotlib 繪製檔案中所有列的直方圖。然後,它在螢幕上顯示它們之前設定每個直方圖的標題和軸標籤。
輸出
執行後,它將生成以下輸出:

結論
總之,從 Pandas DataFrame 建立直方圖是視覺化資料分佈的一種簡單有效的方法。藉助 Pandas 和 Matplotlib 庫,您可以快速為 DataFrame 中的一列或多列資料建立直方圖,自定義直方圖的外觀,並新增軸標籤和標題以使其更具資訊性。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP