はじめに
このプロジェクトでは、Python を使って COVID-19 データを分析する方法を学びます。COVID-19 のパンデミックは世界に大きな影響を与えており、ウイルスの拡大を追跡し、適切な判断を下すためにはデータを理解することが重要です。
👀 プレビュー
{
"Confirmed": {
"Africa": 1203094,
"America": 6396173,
"Asia": 6480321,
"Europe": 3450299,
"Oceania": 27346,
"Others": 721,
"Total": 17557954
},
"Deaths": {
"Africa": 28289,
"America": 254610,
"Asia": 133186,
"Europe": 206438,
"Oceania": 576,
"Others": 15,
"Total": 623114
},
"Recovered": {
"Africa": 930536,
"America": 5087347,
"Asia": 5163062,
"Europe": 1927545,
"Oceania": 21892,
"Others": 651,
"Total": 13131033
},
"Active": {
"Africa": 244269,
"America": 1054216,
"Asia": 1184073,
"Europe": 1316316,
"Oceania": 4878,
"Others": 55,
"Total": 3803807
}
}
🎯 タスク
このプロジェクトでは、以下のことを学びます。
- 開発環境をセットアップし、必要な Python ライブラリをインストールする方法
- COVID-19 データの構造と内容を理解する方法
- 国名を大陸名に変換する関数を実装する方法
- COVID-19 データを処理し、各大陆の集計統計を計算する方法
- コードをテストし、出力を検証する方法
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- Python で CSV データを扱う方法を理解する
- データを処理し分析する関数を実装する
- 異なる形式(例:CSV から JSON)のデータを変換する
- データ分析と可視化の経験を得る
- データに基づいた洞察を通じて COVID-19 パンデミックの理解に貢献する
環境を整える
このステップでは、COVID-19 データ分析プロジェクトの環境をセットアップする方法を学びます。
- ターミナルを開き、
/home/labex/projectディレクトリに移動します。 - 次のコマンドを実行して必要な Python ライブラリをインストールします。
python3 -m pip install pandas country-converter
これにより、プロジェクトに必要な pandas と country-converter ライブラリがインストールされます。
データを理解する
COVID-19 のデータは、/home/labex/project ディレクトリにある CSV ファイルで提供されます。このファイルには、以下の列が含まれています。
Country_Region:国または地域の名前Confirmed:COVID-19 の確定感染者数Deaths:COVID-19 による死亡者数Recovered:COVID-19 の回復者数Active:COVID-19 の現症者数
あなたのタスクは、このデータを処理して、各大陆の集計統計を計算することです。
country_to_continent 関数を実装する
最初のステップは、国名を対応する大陸名に変換できる関数を作成することです。/home/labex/project ディレクトリに新しいファイル covid.py を作成し、次のコードを追加します。
import country_converter as coco
def country_to_continent(country_name):
"""この関数は国名を受け取り、大陸名を返します。"""
try:
## 国名を大陸名に変換する
if country_name == "Diamond Princess" または country_name == "MS Zaandam":
return "Others"
country_continent_name = coco.convert(names=country_name, to="continent")
## 国名が見つからない場合、'Others' を返す
if country_continent_name == "not found":
return "Others"
return country_continent_name
except:
return "Others"
この関数は、country-converter ライブラリを使用して国名を対応する大陸名に変換します。国名が見つからない場合は、「Others」を返します。
count 関数を実装する
次に、count 関数を実装する必要があります。この関数は COVID-19 データを処理し、各大陆の集計統計を返します。covid.py ファイルに次のコードを追加します。
import json
import pandas as pd
def count(data):
"""この関数はファイルパスを受け取り、各大陆の確定感染者数、死亡者数、回復者数、現症者数の合計を返します。"""
## ファイルからデータを読み込む
df = pd.read_csv(data)
## 欠損値を 0 で埋める
df.fillna(0, inplace=True)
## 欠損値のある行を削除する
df = df[df["Confirmed"] == df["Deaths"] + df["Recovered"] + df["Active"]]
## 国名を大陸名に変換する
df["Continent"] = df["Country_Region"].apply(country_to_continent)
## データ型を整数に変換する
df[["Confirmed", "Deaths", "Recovered", "Active"]] = df[
["Confirmed", "Deaths", "Recovered", "Active"]
].astype(int)
## 関心のある列を選択し、辞書に変換する
df = df[["Continent", "Confirmed", "Deaths", "Recovered", "Active"]]
result = df.groupby("Continent").sum().to_dict()
## 各大陆の合計を追加する
for key in result.keys():
result[key]["Total"] = sum(result[key].values())
return json.dumps(result)
この関数は CSV ファイルから COVID-19 データを読み込み、データを処理し、JSON 形式で各大陆の集計統計を返します。
コードをテストする
コードをテストするには、ターミナルで次のコマンドを実行できます。
python3 covid.py
これにより、count 関数が実行され、結果の JSON データがコンソールに表示されます。
出力を検証する
count 関数の出力は、次のような JSON 文字列でなければなりません。
{
"Confirmed": {
"Africa": 1203094,
"America": 6396173,
"Asia": 6480321,
"Europe": 3450299,
"Oceania": 27346,
"Others": 721,
"Total": 17557954
},
"Deaths": {
"Africa": 28289,
"America": 254610,
"Asia": 133186,
"Europe": 206438,
"Oceania": 576,
"Others": 15,
"Total": 623114
},
"Recovered": {
"Africa": 930536,
"America": 5087347,
"Asia": 5163062,
"Europe": 1927545,
"Oceania": 21892,
"Others": 651,
"Total": 13131033
},
"Active": {
"Africa": 244269,
"America": 1054216,
"Asia": 1184073,
"Europe": 1316316,
"Oceania": 4878,
"Others": 55,
"Total": 3803807
}
}
この出力は、各大陆の集計統計を表しており、確定感染者数、死亡者数、回復者数、および現症者数の合計が含まれています。
おめでとうございます!あなたは COVID-19 データ分析プロジェクトを完了しました。質問や問題があれば、遠慮なくお尋ねください。
まとめ
おめでとうございます!このプロジェクトを完了しました。あなたは実験技術を向上させるために LabEx でさらに多くの実験を行うことができます。



