EDA 2023 年世界國家suicide rate排名

文章目錄

  • 前言:
  • 關于數據集
  • 導入模塊
  • 導入數據
  • 數據預處理
  • 探索性數據分析
    • 按性別劃分的自殺率 [箱線圖]
    • 相關矩陣熱圖
    • 自殺率最高的 15 個國家
    • 變化百分比最高的 15 個國家/地區
    • 2023 年世界地圖上自殺率的國家
  • 結尾:

前言:

隨著社會的不斷發展和變遷,人們對于各種社會問題的關注也在不斷擴大。在這個信息爆炸的時代,數據分析成為了深入理解和解決社會問題的有力工具之一。在這篇博客中,我們將聚焦于一個備受關注的話題——suicide rate,并通過對 2023 年全球各國的suicide rate進行探索性數據分析(Exploratory Data Analysis, EDA),來了解這一問題在不同國家的表現。

suicide rate不僅是一個深刻的社會問題,也反映了一個國家在心理健康、社會福祉等方面的表現。通過對suicide rate進行綜合分析,我們有望更全面地認識到這個問題的復雜性,為制定相應的預防和支持措施提供更科學、更精準的依據。

關于數據集

按性別和國家劃分的suicide rate(年齡標準化,每 10 萬人,世界衛生組織,2023 年)

  • Country - 地區;
  • All - 男 + 女;
  • Male - 僅限男性;
  • Female - 僅限女性;
  • M/F - 女性與男性的比例;
  • 2000 - 全部在 2000 年;
  • Change% - 從 2000 年到 2023 年的百分比變化。

導入模塊

  1. import numpy as np: 引入NumPy庫,通常用于進行數值計算和數組操作。

  2. import pandas as pd: 引入Pandas庫,用于數據操作和分析。常用的數據結構是DataFrame。

  3. import matplotlib.pyplot as plt: 引入Matplotlib庫,用于繪制靜態圖表。

  4. %matplotlib inline: 這是一個Jupyter Notebook的魔術命令,用于在Notebook中直接顯示Matplotlib圖表。

  5. import seaborn as sns: 引入Seaborn庫,用于創建更美觀的統計圖表。

  6. sns.set_theme(style=‘whitegrid’, palette=‘viridis’): 設置Seaborn的主題樣式和調色板。

  7. import plotly.express as px: 引入Plotly Express庫,用于創建交互式圖表。

  8. import warnings 和 warnings.filterwarnings(‘ignore’): 用于忽略警告信息,可以使輸出更整潔。

  9. import os 和 for dirname, _, filenames in os.walk(‘/kaggle/input’): 用于遍歷指定路徑下的文件。

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set_theme(style='whitegrid', palette='viridis')
import plotly.express as pximport warnings
warnings.filterwarnings('ignore')import os
for dirname, _, filenames in os.walk('/kaggle/input'):for filename in filenames:print(os.path.join(dirname, filename))

導入數據

df = pd.read_csv('/kaggle/input/world-countries-rankings-by-suicide-rate-2023/world_suicide_rate_2023.csv')
iso_map = pd.read_csv('/kaggle/input/country-mapping-iso-continent-region/continents2.csv')
df.head(10)

在這里插入圖片描述

數據預處理

df.describe().T.style.background_gradient(cmap='Reds')

使用Pandas中DataFrame的describe()方法來獲取數據集的基本統計信息,接著使用了.T進行轉置,最后應用了樣式,通過style.background_gradient(cmap=‘Reds’)實現了基于漸變色的背景。

這段代碼的作用是創建一個漸變色的表格,以更直觀地展示數據集的統計信息。顏色深淺表示數值的大小,通常在數據集較大時,這樣的可視化方式有助于快速識別數據分布和趨勢。
在這里插入圖片描述

def summary(df):summary_df = pd.DataFrame(df.dtypes, columns=['dtypes'])summary_df['count'] = df.count().values summary_df['unique'] = df.nunique().valuessummary_df['missing#'] = df.isna().sum()summary_df['missing%'] = df.isna().sum() / len(df)return summary_df
summary(df).style.background_gradient(cmap='Reds')

生成了一個數據框,包含了數據框中每個列的一些摘要統計信息。具體來說:

  • summary_df[‘dtypes’]: 列出每列的數據類型。
  • summary_df[‘count’]: 計算每列的非缺失值數量。
  • summary_df[‘unique’]: 計算每列的唯一值數量。
  • summary_df[‘missing#’]: 計算每列的缺失值數量。
  • summary_df[‘missing%’]: 計算每列缺失值在總數中的百分比。

通過.style.background_gradient(cmap=‘Reds’)為生成的摘要數據框應用了漸變色的樣式,以提供更直觀的可視化。
在這里插入圖片描述
從返回結果可以得出,該數據中沒有缺失值。

探索性數據分析

按性別劃分的自殺率 [箱線圖]

plt.figure(figsize=(8,6))
sns.boxplot(data=df[['Female', 'Male']])
plt.title('Box Plot: Suicide Rates by Gender')
plt.ylabel('Suicide Rate')
plt.tight_layout()
plt.show()
  • plt.figure(figsize=(8,6)): 設置圖表的大小為8x6英寸。

  • sns.boxplot(data=df[[‘Female’, ‘Male’]]): 使用Seaborn的boxplot函數繪制箱線圖,展示了"Female"和"Male"兩列的數據分布情況。

  • plt.title(‘Box Plot: Suicide Rates by Gender’): 設置圖表的標題。

  • plt.ylabel(‘Suicide Rate’): 設置y軸的標簽。

  • plt.tight_layout(): 調整布局,確保圖表不會被截斷。

  • plt.show(): 顯示圖表。
    在這里插入圖片描述
    男性自殺比例高

相關矩陣熱圖

num_cols = df.select_dtypes(include=['float64', 'int64']).columns.to_list()
ndf = df[num_cols].corr()plt.figure(figsize=(8,6))
mask = np.triu(np.ones_like(ndf, dtype=bool))
sns.heatmap(ndf, annot=True, cmap='viridis', linewidths=.5, mask=mask)
plt.title('Heatmap of Correlation Matrix')
plt.tight_layout()
plt.show()
  • num_cols = df.select_dtypes(include=[‘float64’, ‘int64’]).columns.to_list(): 選擇數據集中的數值型列,將列名存儲在num_cols列表中。

  • ndf = df[num_cols].corr(): 創建一個包含數值型列之間相關系數的相關性矩陣。

  • plt.figure(figsize=(8,6)): 設置圖表的大小為8x6英寸。

  • mask = np.triu(np.ones_like(ndf, dtype=bool)): 創建一個上三角形掩碼,以隱藏相關性矩陣的下半部分,避免重復顯示。

  • sns.heatmap(ndf, annot=True, cmap=‘viridis’, linewidths=.5, mask=mask): 使用Seaborn的heatmap函數創建熱力圖,顏色深淺表示相關性的強弱,同時在方格中顯示相關系數的數值。

  • plt.title(‘Heatmap of Correlation Matrix’): 設置圖表標題。

  • plt.tight_layout(): 調整布局,確保圖表不會被截斷。

  • plt.show(): 顯示圖表。
    在這里插入圖片描述

自殺率最高的 15 個國家

df[1:].head(15).style.background_gradient(cmap='Reds')

在這里插入圖片描述
自殺率最高的是Lithuania.

變化百分比最高的 15 個國家/地區

top15_by_change = df[1:16].sort_values(by='Change%', ascending=False)
top15_by_change.head(15).style.background_gradient(cmap='Reds')

在這里插入圖片描述

2023 年世界地圖上自殺率的國家

df = df[1:]
iso_map = iso_map[['name', 'alpha-3']]
iso_map.rename(columns = {'name': 'Country', 'alpha-3': 'ISO_alpha'}, inplace=True)
iso_map['Country'] = iso_map['Country'].str.lower()
df['Country'] = df['Country'].str.lower()
  • iso_map = iso_map[[‘name’, ‘alpha-3’]]: 選擇了iso_map數據框中的’name’和’alpha-3’兩列。

  • iso_map.rename(columns={‘name’: ‘Country’, ‘alpha-3’: ‘ISO_alpha’}, inplace=True): 重命名了’iso_map’數據框的兩列,將’name’列重命名為’Country’,將’alpha-3’列重命名為’ISO_alpha’。inplace=True表示直接在原始數據框上進行修改。

  • iso_map[‘Country’] = iso_map[‘Country’].str.lower(): 將’Country’列中的所有字符轉換為小寫字母,這樣可以確保不同數據框中的國家名字的大小寫一致。

  • df[‘Country’] = df[‘Country’].str.lower(): 同樣,將’df’數據框中的’Country’列中的所有字符轉換為小寫字母。

df.head()

在這里插入圖片描述

df = pd.merge(df, iso_map, on='Country', how='left')
  • pd.merge(df, iso_map, on=‘Country’, how=‘left’): 這行代碼將df和iso_map兩個數據框按照’Country’列進行左連接,即保留df中所有的行,并將iso_map中匹配的行合并進來。連接的方式由how參數指定,這里使用的是左連接(how=‘left’),表示以df為主表,按照’Country’列將兩個數據框合并。

  • 結果會生成一個新的數據框,包含了df中的所有列以及iso_map中的’ISO_alpha’列。on='Country’表示連接的鍵是’Country’列。

df.head(10)

在這里插入圖片描述

xmap = px.choropleth(df, locations='ISO_alpha', color='All', scope='world', title='World Countries by Suicide Rates 2023',color_continuous_scale='viridis', hover_name='Country')
xmap.show()

這里使用了Plotly Express庫中的choropleth函數,創建了一個世界地圖,用顏色表示不同國家的自殺率。讓我為你解釋一下:

  • df: 指定要使用的數據框。
  • locations=‘ISO_alpha’: 指定地理位置的列,這里是ISO_alpha,用于與地圖上的國家/地區相匹配。
  • color=‘All’: 指定用于著色的列,這里是’Suicide Rates’的總和(假設 ‘All’ 列在數據框中)。
  • scope=‘world’: 指定地圖的范圍,這里是全球。
  • title=‘World Countries by Suicide Rates 2023’: 設置地圖的標題。
  • color_continuous_scale=‘viridis’: 設置顏色的漸變色帶。
  • hover_name=‘Country’: 當鼠標懸停在地圖上的特定國家時,顯示國家名稱。
  • xmap.show(): 顯示生成的地圖。
    在這里插入圖片描述

結尾:

通過對 2023 年世界各國suicide rate的深入分析,我們不僅僅是在觀察數字背后的故事,更是在尋找解決問題的線索。suicide rate問題是一個多維度的挑戰,需要社會各界的共同努力來制定有效的預防和干預策略。通過數據分析,我們能夠更清晰地看到suicide rate背后的社會、經濟、文化等方面的影響因素,這為我們提供了更有針對性的解決方案的可能性。

希望這次的數據分析能夠引起更多人對suicide 問題的重視,激發社會對心理健康的更深層關注。只有通過共同的關心和努力,我們才能夠建設一個更加健康、關愛的社會。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41892.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

揭秘:源代碼防泄密的終極秘籍

在當今信息科技高度發達的時代,源代碼作為企業最核心的資產之一,其安全性不言而喻。源代碼的泄露可能導致企業技術機密被競爭對手獲取,進而威脅到企業的市場競爭力和長遠發展。因此,源代碼防泄密成為了企業信息安全工作的重中之重…

前端JS特效第24波:jQuery輕量級響應式幻燈片插件EasyFader

jQuery輕量級響應式幻燈片插件EasyFader&#xff0c;先來看看效果&#xff1a; 部分核心的代碼如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"utf-8"> <title>jQuery輕量級響應式幻燈片插件E…

C-10 凸包

凸包 數學定義 平面的一個子集S被稱為是凸的&#xff0c;當且僅當對于任意兩點A&#xff0c;B屬于S&#xff0c;線段PS都完全屬于S過于基礎就不詳細介紹了 凸包的計算 github上找到了別人的代碼&#xff0c;用4種方式實現了凸包的計算&#xff0c;把他放在這里鏈接地址htt…

可靈ai出web端了

網址 https://klingai.kuaishou.com/ 可靈ai出web端了 最近最火的莫過于老照片動態視頻了&#xff0c;現在可靈出web端了&#xff0c;更利好開發者了。

redis運維:sentinel模式如何查看所有從節點

1. 連接到sentinel redis-cli -h sentinel_host -p sentinel_port如&#xff1a; redis-cli -h {域名} -p 200182. 發現Redis主服務器 連接到哨兵后&#xff0c;我們可以使用SENTINEL get-master-addr-by-name命令來獲取當前的Redis主服務器的地址。 SENTINEL get-master-a…

原生JS常用方法總結

文章目錄 根據 cookie 的 key 獲取 value根據 xpath 獲取頁面元素ajax請求 根據 cookie 的 key 獲取 value // 獲取cookie function getCookie(key){var arrstr document.cookie.split("; ");for (var i 0; i < arrstr.length; i){var temp arrstr[i].split(&…

手動安裝Ruby 1.9.3并升級RubyGems

手動安裝Ruby 1.9.3并升級RubyGems ###Ruby 1.9.3 p125安裝 wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz \ && tar -xzvf ruby-1.9.3-p125.tar.gz \ && cd ruby-1.9.3-p125 \ && ./configure --with-openssl-dir/usr/lib/op…

Python骨架肌體運動學數學模型

&#x1f3af;要點 &#x1f3af;運動學矢量計算 | &#x1f3af;跳遠的運動學計算 | &#x1f3af;關節肢體運動最小加加速度模型 | &#x1f3af;膝關節和踝關節角度二維運動學計算 | &#x1f3af;上下肢體關節連接運動鏈數學模型 | &#x1f3af;剛體連接點速度加速度計算…

[python]Markdown圖片引用格式批處理桌面應用程序

需求 使用python編寫一個exe&#xff0c;實現批量修改圖片引用&#xff0c;將修改后的文件生成為 文件名_blog.md。有一個編輯框&#xff0c;允許接收拖動過來md文件&#xff0c;拖入文件時獲取文件路徑&#xff0c;有一個編輯框編輯修改后的文件的輸出路徑&#xff0c;用戶拖入…

Springboot實戰:AI大模型+亮數據代理助力短視頻時代

目錄 前言1.如何入門亮數據1.1、注冊登錄1.2、注冊賬號1.3、登錄1.4、購買靜態住宅代理1.5、展示購買的代理 2. 使用Springboot、AI大模型構建系統2.1 使用Springboot、AI大模型構建爬蟲2.2、在Springboot項目添加工具 3、編寫代碼&#xff0c;爬取視頻素材3.1、代碼里使用代理…

Redis核心問題總結(一)

1、為什么要使用Redis做緩存 緩存的好處 使用緩存的目的就是提升讀寫性能。而實際業務場景下&#xff0c;更多的是為了提升讀性能&#xff0c;帶來更好的性 能&#xff0c;帶來更高的并發量。Redis 的讀寫性能比 Mysql 好的多&#xff0c;我們就可以把 Mysql 中的熱點數據緩 …

如何編譯ffmpeg支持h265(hevc)?

推薦使用這里的文件&#xff1a;https://github.com/runner365/ffmpeg_rtmp_h265 根據你ffmpeg的源碼 版本&#xff0c;切換到不同分支即可。 國內cdn方式: 新增codecid hevc/vp8/vp9/opus在rtmp中的codecid沒有官方協議定義&#xff0c;由國內眾多知名cdn共同制定。 FLV_COD…

1. LangChain4j 之入門(簡單易學)

一&#xff1a;前言 什么是LangChain&#xff1f;而LangChain4j又是什么&#xff1f;不知道的朋友&#xff0c;可以看我一下兩篇文章 1分鐘了解LangChain是什么? | 1分鐘了解LangChain4j是什么? LangChain4j是LangChain的Java版本&#xff0c;幫助開發者很容易的接入大模型的…

提升結構安全性:應變計在現代建筑中的應用

在現代建筑領域&#xff0c;隨著工程技術的不斷進步&#xff0c;對結構安全性的要求也日益提高。作為一種關鍵的工程儀器儀表&#xff0c;應變計在提升結構安全性方面發揮著不可替代的作用。本文將深入探討應變計在現代建筑中的應用&#xff0c;以及它如何助力工程師們實時監測…

權力之望怎么注冊賬號創建角色 權利之網角色賬號注冊教程

權力之望是一款全新的大型MMORPG游戲&#xff0c;擁有9把獨特武器和56種職業組合&#xff0c;并搭配了超炫酷的戰斗畫面&#xff0c;全程采用低俯視角游戲&#xff0c;讓玩家能體驗到更強的操作感和爽快感。這款游戲主打高養成自由度玩家可以自由更換武器進行戰斗&#xff0c;還…

前端面試題30(閉包和作用域鏈的關系)

閉包和作用域鏈在JavaScript中是緊密相關的兩個概念&#xff0c;理解它們之間的關系對于深入掌握JavaScript的執行機制至關重要。 作用域鏈 作用域鏈是一個鏈接列表&#xff0c;它包含了當前執行上下文的所有父級執行上下文的變量對象。每當函數被調用時&#xff0c;JavaScri…

零基礎也能成為產品冊設計高手

?在當今數字化時代&#xff0c;產品冊設計已成為企業營銷的重要手段之一。過去&#xff0c;人們認為只有專業人士才能設計出精美的產品冊&#xff0c;然而&#xff0c;隨著設計工具的普及和在線學習資源的豐富&#xff0c;零基礎的你也能成為產品冊設計高手。本文將帶你走進這…

MindsDB:一個利用企業數據構建 AI 的平臺

MindsDB作為一個開源項目&#xff0c;它旨在將機器學習模型無縫集成到現有的數據庫系統中&#xff0c;為用戶提供實時的數據預測能力。這個項目的創新之處在于&#xff0c;它能夠以簡單、直觀的方式讓開發者和非技術人員都能夠利用AI進行數據分析和預測。 它是根據企業數據庫定…

航空航天單位保密網文件導出管理難點在哪里?如何解決?

航空航天單位的重要性不言而喻&#xff0c;它們在國家安全、科技進步、經濟發展以及國際合作等多個領域都扮演著至關重要的角色。為了保護工作內容中的重要數據&#xff0c;遵守保密規定&#xff0c;對涉密人員、保密要害部門單位、涉密載體、涉密信息傳輸和涉密活動進行嚴格管…

glide加載mp4 源碼堆棧調用核心代碼分析

load 數據走的httpurlfetcher 的loaddata 從MultiLoader 調用而來 load到inputstream流后的處理 核心 圖片是glide 首先創建解釋器的時候 加了videodecoder 然后這里會從流中加載對應幀的圖片保存在手機cache目錄中 將這個file 作為bitmap傳遞 然后加載 private static final…