python PR

「Pythonで始めるデータ分析:初心者のための完全ガイド」

記事内に商品プロモーションを含む場合があります

今回の記事では、データ分析をpythonで始めたい初心者のための完全ガイドを紹介していきます。
データサイエンスで使うpythonの基礎中の基礎を、必要な部分に絞って解説してあります。ちょっと長いですが、これを抑えればpythonの基本は必ず身につきます。

サンプルコードをたくさん用いていますので、実際に各々の環境で手を動かしながら勉強していってください。

Pythonデータ分析の重要性

Pythonを使用したデータ分析は現代のビジネスや科学において不可欠なスキルです。
特に下記の点で優れています。

  • Pythonは優れたデータ分析ツールやライブラリが非常に多く、統計分析や機械学習、データの可視化、データマイニングがしやすい
  • Pythonを使用することで、手作業でのデータ処理の煩わしさを解消し、生産性を向上させることができる。
  • pythonは利用者が多いため、学ぶためのコンテンツが多い

初学者はRかpythonで迷う方もいますが、個人的にはpythonを強く勧めます。
やっぱり、いずれは機械学習・ディープラーニングをやりたいってなった時にpythonでないと厳しいですからね!

Pythonデータ分析の基本的なコンセプトについての説明

Pythonデータ分析の基本的なコンセプトには、データの収集、クリーニング、可視化、分析、および予測が含まれます。Pythonを使用してこれらのタスクを行うためには、下記のライブラリを学ぶ必要があります。

  • Pandas(データフレームにしてデータを扱いやすく)
  • NumPy(行列計算)
  • Matplotlib(データ可視化)
  • Seaborn(データ可視化)
  • Scikit-learn(機械学習)

pythonにはこの他にもたくさんのライブラリがありますが、まずはこの5つのライブラリが重要です。
今回は上記の説明は割愛し、pythonの基礎にしぼって解説します。

Pythonの基本的な文法についての紹介

ではさっそくpythonの基本的な文法を学んでいきましょう。

Pythonの基本的な文法は、数値、文字列、リスト、タプル、辞書、セットなどのデータ型、およびif、for、while、tryなどの制御構造を含みます。以下は、Pythonの基本的な文法の例です。

pythonで数値を扱う

データ分析では数値は必須ですね。
数値は、整数や浮動小数点数として表現されます。Pythonでは、算術演算子や数学関数を使用して数値の計算ができます。
また、pythonでは直接数字同士を演算するというよりは、下記の様に変数(a,b)にいれてから計算します。
そして最後にprint()関数を使う事で、表示する事ができます。

「c = a + b」ではaに代入された10とbに代入された3.14が足し算され、その結果13.14がcに代入されています。

pythonで文字列を扱う

文字列は、文字の並びとして表現されます。Pythonでは、文字列をクオートで囲みます。また文字列の結合やスライスといった操作もできます。

まずは文字列を代入してから結合してみましょう。

->「Hello, Alice!」が返ってきます。
もちろん変数にいれず、直接printのあとに文字を入れても大丈夫です。その際クオートを忘れずに!

->「Hello, Alice!

文字列をスライスしてみよう

また、スライスといって文字を指定の場所で区切る事もできます。

->や
->まも

気を付けて欲しいのが、pythonでは1文字目を指定する場合は[0]と指定することです。
また、「:」を使う事で、2個目の様に範囲指定でスライスする事ができます。

あとsplit()関数というのがありまして、これがなかなか使えます。


->[‘apple’, ‘banana’, ‘orange’]

この様に’_’で区切られてリストで返ってきます。
これはスクリプト組む時など自動化の際に良く使います。対象のファイル名を抽出してパスの指定をしたりします。

pythonで要素の集合を扱う

pythonでは文字列や数字を集合で扱う事が非常に多いです。
そんな時に使うのが、下記の物になります。

  • リスト
  • タプル
  • 辞書
  • セット

リストとは?

実は先ほどfruits変数を’_’で区切って返ってきたのがリストです。
リストは、カンマで区切られた要素の集合です。以下は、リストを定義して、要素の追加やスライスなどの操作を行うサンプルコードです。

また、一度作ったリストに対してappend()で要素を追加する事もできます。
文字列と同じように要素のスライスもできます。

ちなみにスライスの指定でfruits[2:]とする事で、3番目の要素以降全てと指定する事ができます。逆にfruits[:2]とすると、最初から2番目の要素までをスライスします。

また下記の様にする事で任意の場所に要素を追加できます。


->[‘melon’, ‘banana’, ‘orange’, ‘grape’]

タプルとは?

タプルはリストと非常によく似ています。
違いは作成されたタプルは変更できず、要素を追加、削除、変更することはできません。
リストの場合は[]だったのが、()で囲むとタプルになります。

辞書とは?

Pythonの辞書(dictionary)は、キーと値のペアを格納することができるデータ型です。
{}で括ります。辞書は、リストやタプルと同様に、複数の要素を格納することができますが、要素を格納する方法が異なります。
以下のサンプルコードを使用して、辞書の使い方を説明します。

上記のコードでは、my_dictという辞書を定義して、applebananaorangeというキーに対応する値を設定しています。また、if文を使ってappleというキーが存在するかどうかをチェックし、keys()メソッドとvalues()メソッドを使って、それぞれキーと値の一覧を取得しています。
if分に関しては後述します。

もちろん要素の追加や削除もできます。

grapeというキーに対応する値を追加し、del文を使ってappleというキーに対応する要素を削除しています。

セットとは?

Pythonのセット(set)は、一意(ユニーク)の要素を格納するためのデータ型です。
{}で括ります。以下は、セットに関するサンプルコードです。


->{1, 2, 3, 4, 5, 6}

何個同じ要素があってもユニーク化されて返ってきます。

pythonの基本文法

ではここからはpythonの基本文法に関して解説していきます。
ここでは主に下記について説明します。

  • if
  • for
  • while

if

if分はエクセルの関数で使った事がある人も多いと思います。
Pythonのif文は、ある条件が真であるかどうかを判断して、条件に応じた処理を行うために使用されます。以下はif文のサンプルコードです。

->x is greater than 5

このように、ifの後に書いた条件式にTrueを返すかFalseを返すかで結果が変わってきます。

また、if文には、elif節を追加することもできます。
これにより、複数の条件式を書く事ができます。

->x is greater than 5 but less than or equal to 15

このコードでは、変数xが10である場合、最初の条件式x > 15がFalseとなるため、次の条件式x > 5が評価されます。この条件式はTrueとなるため、print("x is greater than 5 but less than or equal to 15")が実行されます。

ちなみに、ifとelifの条件に合致しない物は全てelse:が実行されます。

for

for文もデータサイエンスでは非常に良く使います。
Pythonのforループは、指定されたシーケンス(リスト、タプル、文字列など)の各要素に対して反復処理を行います。

->1 2 3 4 5

上記のコードは、1から5までの整数を反復処理し、各整数を1行に1つずつ出力します。
ちなみにrange(1, 6)の部分はrange()関数で、指定された範囲内の整数のシーケンスを作成するために使用されるビルトイン関数です。
この場合[1, 2, 3, 4, 5]となっています。

range()関数は3つの引数を取ります:startstopstepです。startは数列の開始値、stopは数列の終了値(この値は数列に含まれません)、stepは各数値間の差を指定します。

例えば、range(0, 10, 2)とすると、0から始まり2ずつ増加するシーケンスが作成され、0, 2, 4, 6, 8の整数が含まれます。

また、リストを使用したforループの例を以下に示します。

->11 12 13

numbersに入っている値に全て10を足した数字をprintしています。

ちなみにfor文にはインデントが必要です。
for number in numbers:の次の行を見てください。printの前にスペースが入っていますね。
インデントには、コードブロックの開始と終了を示す重要な役割があります。ブロック内の各行は、同じ数のスペースまたはタブでインデントする必要があります。Pythonでは、一般的にスペース4つが推奨されていますが、スペース2つやタブを使用することもできます。

インデントが入っていなかったり、揃っていなかったりでエラーになる事が非常に多いので注意しましょう!

append

また実務で良く使うのが最初に空のリストを作り、その中に要素をどんどん入れていく事です。

->[0, 1, 2, 3, 4]

空のmy_listを作成した後に、range()関数で0~4の数字を入れていってます。
慣れてくるとlist内包表記で1行で書く事もできますが、中級以上になるのでここでは割愛します。

while

whileはfor文に似ていますが少し違います。
指定された条件がTrueである間、繰り返しブロック内のコードを実行し続け、Falseになると終了します。

->1 2 3 4 5 6 7 8 9 10

for文の様にiに1が足され続け、10になった瞬間に止まります。

おわりに

ここまでお疲れ様でした。完走した自分を褒めてあげてください。
これで一通りpythonの基礎は身についたと思います。

しかし、最初にお話ししたようにデータ分析ではpandas、numpy、seabornなどの各種ライブラリを使いこなす事が必須です。

また、チーム開発をする場合には書き方のお作法なども必要になってきます。
まずはPEP8にならって書くようにすると良いでしょう。

歩みを止めずに、さらに学習してデータ分析を楽しみましょう!

「記述統計・推測統計とは?違いを簡単に解説します。」

あなたにおススメの記事