データサイエンス-データ準備
データを分析する前に、データサイエンティストはデータを抽出し、クリーンで価値のあるものにする必要があります。
パンダでデータを抽出して読み取る
データを分析する前に、データをインポート/抽出する必要があります。
以下の例では、PythonでPandasを使用してデータをインポートする方法を示しています。
この関数を使用read_csv()
して、ヘルスデータを含むCSVファイルをインポートします。
例
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
例の説明
- Pandasライブラリをインポートする
- データフレームに。という名前を付け
health_data
ます。 header=0
変数名のヘッダーが最初の行にあることを意味します(0はPythonの最初の行を意味することに注意してください)sep=","
「、」が値の間の区切り文字として使用されることを意味します。これは、ファイルタイプ.csv(カンマ区切り値)を使用しているためです。
ヒント:大きなCSVファイルがある場合は、この
head()
関数を使用して上位5行のみを表示できます。
例
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
データクリーニング
インポートされたデータを見てください。ご覧のとおり、データは「ダーティ」であり、値が間違っているか、登録されていません。
- いくつかの空白のフィールドがあります
- 9000の平均パルスは不可能です
- スペース区切り文字のため、9000は非数値として扱われます
- 最大パルスの1つの観測値は「AF」として示されますが、これは意味がありません
したがって、分析を実行するには、データをクリーンアップする必要があります。
空白行を削除する
非数値(9 000とAF)が同じ行にあり、値が欠落していることがわかります。
解決策:この問題を修正するために、観測値が欠落している行を削除できます。
パンダを使用してデータセットをロードすると、すべての空白セルが自動的に「NaN」値に変換されます。
したがって、NaNセルを削除すると、分析可能なクリーンなデータセットが得られます。
この関数を使用しdropna()
て、NaNを削除できます。axis = 0は、NaN値を持つすべての行を削除することを意味します。
例
health_data.dropna(axis=0,inplace=True)
print(health_data)
結果は、NaN行のないデータセットです。
データカテゴリ
データを分析するには、処理しているデータの種類も知る必要があります。
データは、次の3つの主要なカテゴリに分類できます。
- 数値-数値が含まれます。2つのカテゴリに分けることができます:
- 離散:数値は「全体」としてカウントされます。例:2.5セッションをトレーニングすることはできません。2または3のいずれかです。
- 連続:数値は無限の精度にすることができます。たとえば、7時間、30分20秒、または7.533時間眠ることができます
- カテゴリ-相互に測定できない値が含まれています。例:色またはトレーニングの種類
- 順序-相互に測定できるカテゴリデータが含まれています。例:AがBよりも優れている学校の成績など
データの種類を知ることで、データを分析するときにどの手法を使用するかを知ることができます。
データ型
この関数を使用してinfo()
、データセット内のデータ型を一覧表示 できます。
例
print(health_data.info())
結果:
このデータセットには2つの異なるタイプのデータがあることがわかります。
- Float64
- 物体
ここでは、オブジェクトを使用して計算および分析を実行することはできません。タイプオブジェクトをfloat64に変換する必要があります(float64はPythonでは10進数の数値です)。
このastype()
関数を使用して、データをfloat64に変換できます。
次の例では、「Average_Pulse」と「Max_Pulse」をデータ型float64に変換します(他の変数はすでにデータ型float64です)。
例
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
結果:
現在、データセットにはfloat64データ型のみがあります。
データを分析する
データセットをクリーンアップしたら、データの分析を開始できます。
Pythonの関数を使用して、describe()
データを要約できます。
例
print(health_data.describe())
結果:
間隔 | Average_Pulse | Max_Pulse | Calorie_Burnage | Hours_Work | Hours_Sleep | |
---|---|---|---|---|---|---|
カウント | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 |
平均 | 51.0 | 102.5 | 137.0 | 285.0 | 6.6 | 7.5 |
標準 | 10.49 | 15.4 | 11.35 | 30.28 | 3.63 | 0.53 |
最小 | 30.0 | 80.0 | 120.0 | 240.0 | 0.0 | 7.0 |
25% | 45.0 | 91.25 | 130.0 | 262.5 | 7.0 | 7.0 |
50% | 52.5 | 102.5 | 140.0 | 285.0 | 8.0 | 7.5 |
75% | 60.0 | 113.75 | 145.0 | 307.5 | 8.0 | 8.0 |
マックス | 60.0 | 125.0 | 150.0 | 330.0 | 10.0 | 8.0 |
- カウント-観測数をカウントします
- 平均-平均値
- 標準-標準偏差(統計の章で説明)
- 最小-最小値
- 25%、50%、および75%はパーセンタイルです(統計の章で説明されています)
- 最大-最高値