接續上一篇文章,使用kaggle平台上的數據資料來實作說明。
[Python ]pandas基本操作,查看、新增、修改資料
用 pandas
(pd
) 來畫圖了解 MentalHealthSurvey
資料結構,圖表可以幫助你直觀地瞭解 MentalHealthSurvey
資料的結構和變數之間的關係。才有辦法進一步的在去做資料分析。
hist()
函式用來繪製數值型資料的直方圖,這有助於了解各變數的數值分佈情況。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('F:/python/crab/pandas/MentalHealthSurvey.csv')
df.hist(bins=30, figsize=(15, 10))
plt.show()
bins=30
: 指定直方圖中分箱的數量,越多的分箱能夠顯示更細節的分佈。figsize=(15, 10)
: 設定圖表的大小,以便更清晰地查看。plt.show()
: 顯示圖表。heatmap()
函式用於繪製數據的熱力圖,特別是相關矩陣,來顯示變數之間的相關性。
import seaborn as sns
plt.figure(figsize=(12, 8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', linewidths=0.5)
plt.show()
df.corr()
: 計算數據框中各數值型變數之間的相關係數。annot=True
: 在每個單元格中顯示相關係數的數值。cmap='coolwarm'
: 指定顏色地圖,用於更直觀地表示相關性強弱。linewidths=0.5
: 設置網格線的寬度。plt.show()
: 顯示圖表。熱力圖(Heatmap)顯示的相關係數用來衡量兩個變數之間的線性關係,相關係數的範圍為 -1 到 1。
因此,相關性最弱的情況是相關係數為 0,此時兩個變數之間沒有線性關係。負號並不表示相關性最弱,而是表示相關性方向相反。
斜線切下來的數值1,因為自己跟自己比當然最相關,理所當然是1,可以明白的了解那些變數與那些變數相關性是特別強的,有助於後續的資料分析。
散佈圖用於分析兩個數值型變數之間的關係。
df.plot(kind='scatter', x='variable1', y='variable2', alpha=0.5)
plt.show()
kind='scatter': 指定圖表類型為散佈圖。
x='variable1'
, y='variable2'
: 指定橫軸和縱軸的變數。alpha=0.5
: 設置點的透明度,以避免過度疊加時看不清楚。plt.show()
: 顯示圖表。根據上面的熱力圖,我們來挑選看起來相關性特別強跟特別弱的來比較看看。
看起來就depression
與anxiety
相關性最高0.84顏色最深。
df.plot(kind='scatter', x='depression', y='anxiety', alpha=0.5)
plt.show()
幾乎有部分資料都是重疊在一起了。點的分布呈現了一種往上的直線,代表他們有正相關
最後挑選與depression
相關性較弱的financial_concerns
來比較一下。
# 創建顏色映射
colors = plt.cm.viridis(df['depression'] / df['depression'].max())
df.plot(kind='scatter', x='depression', y='financial_concerns', c=colors, alpha=0.5)
plt.show()
這個圖跟上面那張圖相比,就雜亂不堪,看的出來沒有什麼相關性。
最後看負相關系數最高的兩個變數
isolation
與social_relationships
有-0.56的關係 ,就看比較深的點,來判斷是否有負關聯。
# 創建顏色映射
colors = plt.cm.viridis(df['isolation'] / df['isolation'].max())
df.plot(kind='scatter', x='isolation', y='social_relationships', c=colors, alpha=0.5)
plt.show()
點的分佈模式:
variable1
和 variable2
之間存在正相關關係。pairplot()
用於展示多個數值型變數之間的成對關係,生成一組散佈圖和對角線上的分佈圖。
sns.pairplot(df)
plt.show()
sns.pairplot(df)
: 自動繪製數據框中數值型變數之間的成對關係圖。plt.show()
: 顯示圖表。成對關係圖是一個強大的工具,用於視覺化多個變數之間的兩兩關係。它可以幫助你快速了解變數之間的有無關聯性、分佈情況以及是否存在異常值或其他模式。這在數據探索和初步分析中非常有用。