プログラミング学習

Pythonで始めるデータ分析の基本:収集・クリーニングから可視化までの手順ガイド

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

Pythonは、データ分析を効率的に行うための強力なツールとして多くのプロフェッショナルに利用されています。本記事では、Pythonを使ったデータの収集、前処理、可視化、そして分析の手順をわかりやすく解説します。データ分析を始めたい初心者の方にも、Pythonの強力なライブラリ「pandas」や「Matplotlib」を活用して、手軽に分析を始める方法をステップバイステップで紹介します。Pythonでデータ分析の基礎をしっかりと身につけ、ビジネスやプロジェクトに活かすための第一歩を踏み出しましょう。

この記事では、Pythonでデータの前処理・可視化・分析をやっていきます

Pythonって何?

Pythonとは、汎用性が高く、使いやすいプログラミング言語の一つです。1990年代にオランダのプログラマー、グイド・ヴァンロッサムによって開発され、現在では世界中の開発者やデータサイエンティストに広く使用されています。

Pythonは、以下の特徴があるため初心者にも人気です。

  1. 読みやすい構文: Pythonのコードは、まるで英語の文章のように直感的で読みやすい構文が特徴です。これにより、プログラムが複雑であっても理解しやすく、学びやすい言語です。
  2. 幅広い用途: Pythonは、データ分析、機械学習、Web開発、自動化、ゲーム開発、科学計算など、さまざまな分野で活用されています。特にデータ分析や人工知能(AI)分野ではその力を発揮しています。
  3. 豊富なライブラリとフレームワーク: Pythonには、数多くのライブラリ(拡張機能)があり、データ分析では「pandas」「NumPy」、機械学習では「scikit-learn」「TensorFlow」などが有名です。これらのライブラリを活用することで、複雑な作業も効率的に行うことができます。
  4. 大規模なコミュニティ: 世界中の開発者がPythonを使用しているため、学習資料やフォーラム、サポートが豊富です。何か困った時でも、コミュニティの力を借りて解決することが容易です。

Pythonはプログラミング初心者だけでなく、経験者にも愛されている言語で、今後も需要が高まると予想されています。

データ分析って何?

データ分析とは、収集したデータを整理・処理し、そこから有益な情報やパターンを導き出すプロセスです。これにより、意思決定や予測、問題解決に役立つ洞察を得ることができます。データ分析はビジネス、科学、医療、マーケティングなど、多くの分野で重要な役割を果たしています。

データ分析は、一般的に以下のステップで行われます。

  1. データの収集
    データ分析の最初のステップは、分析対象のデータを収集することです。これは、調査、アンケート、センサーデータ、ウェブサイトのアクセスログ、ビジネスの売上データなど、さまざまなソースから得られます。
  2. データの前処理(クリーニング)
    収集したデータには、欠損値やエラー、異常値などが含まれていることが多いため、これを整理して分析に適した形式に整える必要があります。このプロセスでは、データのクリーニングやフォーマットの変更が行われます。
  3. データの可視化
    データをグラフやチャートにして視覚的に表現し、パターンやトレンドを視覚的に確認できるようにします。これにより、データの特徴や異常を簡単に理解することができます。
  4. データ分析・モデリング:
    ここでは統計的手法や機械学習アルゴリズムなどを使ってデータのパターンや傾向を解析します。目的に応じて、相関分析や回帰分析、分類、予測モデルなどが使われます。
  5. インサイトの抽出:
    分析結果をもとに、業務改善や意思決定に役立つ重要な情報を引き出します。例えば、売上のトレンド、顧客の行動パターン、業務の最適化などが挙げられます。
  6. 意思決定・改善策の実施:
    分析で得られたインサイトをもとに、経営戦略やマーケティング施策を改善し、実際の業務に活用します。

データ分析は、データの大きさや複雑さに応じて、**定量分析(数値データを扱う)定性分析(テキストデータや非数値データを扱う)**のアプローチを取ることがあります。また、分析の目的や手法によって、記述的分析(過去のデータの把握)予測的分析(未来のトレンド予測)診断的分析(なぜその結果が生じたかを探る)、**処方的分析(最適な解決策を提示)**といった種類に分けられます。

データ分析を行うことで、膨大なデータの中から意味のある情報を抽出し、適切な行動や意思決定に結びつけることができます。

Pythonでデータ分析を始めよう

Pythonのインストールからデータの取り扱い、分析方法まで、データ分析に必要な知識を一つひとつ学んでいきましょう。

Python環境のセットアップ

まず、Pythonがインストールされていることを確認し、必要なライブラリをインストールします。よく使われるライブラリは以下の通りです。

  • NumPy: 数値計算用
  • Pandas: データ操作と分析
  • Matplotlib: グラフ作成
  • Seaborn: 高度なデータビジュアライゼーション

インストールコマンド:

データの理解

data.info()を使ってデータフレームの基本的な情報を確認することができます。これにより、各カラムの名前、データ型(例えば、数値か文字列か)、欠損値があるかどうかなどの詳細が表示されます。

今回扱うデータは、私のXのデータを使って分析をしていきます。
CSVファイルはこちらから取得してください

練習用CSVファイル

実際の手順

1.データの読み込み データをpandasで読み込み、データフレームとして扱います。

2.data.info()でデータの概要を確認 これを実行することで、各カラムのデータ型や欠損値の有無、行数などを確認できます。

結果として得られる情報

  • カラム名: データフレームに含まれる全ての列の名前。
  • データ型: 各カラムのデータ型(整数型 int64、浮動小数点型 float64、文字列型 object など)。
  • Non-Null Count: 欠損値がないかどうか(全てのデータが揃っているか)。
  • メモリ使用量: データのメモリ使用量が表示されます。

取得データ

データのクリーニング

データのクリーニングを行います。データクリーニングは、分析を行う前にデータの品質を確保するための重要なプロセスです。今回は、主に以下の2つの作業を行います。

欠損値の確認

欠損値がある場合、それを除去するか補完する必要があります。まずはデータセットに欠損値が含まれているかどうかを確認します。

結果として、すべてのカラムで0が表示されている場合、欠損値はないことになります。

データ型の確認と変換

時系列データ(日付)は、分析を行うためにdatetime型に変換する必要があることがよくあります。これを行うことで、日付を基にした操作(時間の比較やグループ化)が簡単になります。

出力データ

重複データの確認

データが重複している場合、それを取り除きます。

データの集計と要約

データの集計と要約 です。ここでは、データの基本的な統計量を確認し、データの傾向を把握します。これにより、各カラムの平均値や最小値・最大値、分布のばらつきなどを理解することができます。

基本統計量の確認

describe() を使って、数値データの基本的な統計量(平均値、標準偏差、最小値、最大値など)を確認します。

得られる結果

  • count: データの数
  • mean: 平均値
  • std: 標準偏差
  • min: 最小値
  • 25%, 50%, 75%: 四分位数
  • max: 最大値

実際に得られたデータ

特定のカラムに関する詳細な分析

例えば、インプレッション数エンゲージメントの平均やばらつきを知りたい場合、以下のように個別に確認することもできます。

実際に得られたデータ

グループ化して集計

日付別にデータを集計したり、特定の条件でデータをグループ化して集計することもできます。

実際に得られたデータ

データの可視化

データをグラフで表現することで、傾向や相関関係を直感的に理解しやすくなります。今回は、基本的な可視化方法をいくつか紹介します。

ヒストグラム

各変数の分布を確認するためにヒストグラムを使います。例えば、インプレッション数の分布を見たい場合、以下のようにします。

ヒトグラムについて

ヒトグラムとは、企業や団体などが自社の従業員や関係者の情報をグラフや図として可視化する方法の一つです。SNSのインプレッション数やいいね、エンゲージメントなどの指標を視覚化し、パフォーマンスを一目で把握できるようにします。たとえば、インプレッション数が多い日やエンゲージメントが高いポストをすぐに確認でき、どの投稿がフォロワー獲得に貢献したのかがわかりやすくなります。

使われるグラフ

棒グラフ(Bar Chart): 各従業員のスキルや活動量を比較するのに最適です。例えば、各メンバーのスキルレベルやプロジェクトへの貢献度を棒で表すことで、簡単に比較できます。

円グラフ(Pie Chart): チーム内の役割分担やスキルセットの割合を示すのに便利です。たとえば、チーム全体の中で、どのスキルがどれくらいの割合を占めているかを視覚化できます。

レーダーチャート(Radar Chart): 各従業員の複数のスキルを一つのグラフで表すことができます。円形に各スキルを配置し、どのスキルが得意かを視覚的に把握できます。

ヒートマップ(Heatmap): 大量のデータを色の濃淡で示すのに使います。例えば、社員のスキル評価や活動量を色で示すことで、全体的な傾向を把握しやすくなります。

参考コード

コードのポイント

  1. データの準備: dates, impressions, likes はそれぞれ日付、インプレッション数、いいね数を表すデータを含むリストです。data['日付'], data['インプレッション数'], data['いいね'] から取得しています。これにより、横軸が日付、縦軸がインプレッション数といいね数になるグラフが作成されます。
  2. グラフのサイズ設定: plt.figure(figsize=(10, 6)) は、表示するグラフの大きさを指定しています。この場合、幅10インチ、高さ6インチのグラフを表示するようにしています。
  3. 棒グラフの作成:
    • 最初の plt.bar(dates, impressions, ...) は日付ごとのインプレッション数を青色の棒グラフとして描画します。alpha=0.7 で半透明に設定されています。
    • 2番目の plt.bar(dates, likes, ...) では、同じ日付ごとの「いいね」を緑色の棒グラフとして描画しますが、bottom=impressions によって、インプレッション数の棒の上に「いいね」の棒を積み上げる形で表示しています。これにより、両方のデータを一つのグラフで視覚的に比較できるようになります。
  4. ラベルとタイトルの設定:
    • plt.xlabel('Date')plt.ylabel('Count') はそれぞれX軸とY軸のラベルを設定しています。
    • plt.title('Impressions and Likes by Date') はグラフ全体のタイトルを設定しています。
  5. X軸のラベルの回転: plt.xticks(rotation=45) によって、日付のラベルを45度回転させて見やすくしています。特に日付が多い場合、この回転はラベルが重ならないように役立ちます。
  6. 凡例の追加: plt.legend() によって、グラフに凡例を追加し、各色の棒グラフが何を表しているか(青=インプレッション数、緑=いいね)を明示しています。
  7. レイアウトの調整: plt.tight_layout() によって、グラフが表示される際の余白や配置が自動で調整されるようにしています。これにより、グラフが適切に画面に収まります。
  8. グラフの表示: plt.show() によって、作成したグラフが画面に表示されます。

出力

散布図

散布図(さんぷず、Scatter Plot)とは、二つの変数間の関係を視覚的に表現するためのグラフです。横軸(X軸)と縦軸(Y軸)にそれぞれ異なる変数をプロットし、それらの点の位置から変数間の相関関係やパターンを読み取ることができます。

ポイント

散布図は、二つの変数間の関係を点で表すグラフです。X軸とY軸にそれぞれ異なる変数を取り、点をプロットすることで、次のような関係を視覚化できます:

  • 相関関係:正の相関(右上がり)、負の相関(右下がり)、相関なし(散らばる)。
  • クラスター:データが複数のグループに分かれて集まる。
  • 異常値:他の点から大きく離れたデータを確認できる。

散布図の利用例

  • マーケティング: 広告費(X軸)と売上(Y軸)の関係をプロットし、広告が売上にどれだけ影響しているかを確認する。
  • 医学: 患者の年齢(X軸)と血圧(Y軸)の関係を見て、年齢が血圧にどのように影響しているかを調べる。
  • 経済: 失業率(X軸)とインフレ率(Y軸)の関係をプロットし、経済的な傾向を分析する。

散布図の特徴

  • シンプルで、二つの変数間の関係を直感的に理解しやすい。
  • 相関関係やパターン、クラスターを探すのに便利。
  • データに傾向がある場合、それが視覚的に現れやすい。

参考コード

コードのポイント

  1. 散布図 (Scatter Plot) の目的: この散布図は、各インプレッション数に対する「いいね」数を点でプロットし、その相関や傾向を視覚的に確認するためのものです。散布図はデータの関係性を把握するのに適したグラフ形式です。
  2. グラフのサイズ設定: plt.figure(figsize=(8, 6)) によって、グラフの表示サイズを幅8インチ、高さ6インチに設定しています。これにより、適度なサイズで表示されます。
  3. 散布図の作成: plt.scatter(data['インプレッション数'], data['いいね'], alpha=0.7, color='blue') は、data にある「インプレッション数」と「いいね数」をそれぞれX軸とY軸にプロットしています。
    • alpha=0.7 は、プロットされる点の透明度を0.7(少し透けた状態)に設定しており、データ点が多い場合に重なりが見やすくなります。
    • color='blue' によって、プロットされる点が青色に設定されています。
  4. X軸とY軸のラベル:
    • plt.xlabel('Impressions') でX軸のラベルとして「Impressions(インプレッション数)」を指定しています。
    • plt.ylabel('Likes') でY軸のラベルとして「Likes(いいね)」を指定しています。 これにより、散布図の各軸が何を表しているかがわかりやすくなります。
  5. タイトルの追加: plt.title('Scatter Plot of Impressions vs Likes') によって、グラフ全体のタイトルを設定しています。これにより、何を可視化しているグラフかが一目でわかります。

出力

ヒートマップ

ヒートマップ(Heatmap)とは、データの値を色の濃淡や色合いで視覚的に表現するグラフのことです。ヒートマップでは、色が数値の大小を表し、例えば、数値が高い場合は色が濃く、低い場合は色が薄くなるように設定されることが一般的です。これにより、データのパターンや傾向を一目で把握できるようになります。

ポイント

  • 相関関係の可視化: 異なる変数間の相関を示す場合に、変数同士の関係性の強さを色で表すことができます。
  • パターンの発見: 大量のデータを扱う際に、全体的な傾向やパターンがすぐに視覚的に把握できる。
  • 濃淡や色合いで強弱を表現: 色の濃淡を使うことで、データの大きさや強さを直感的に理解できます。

ヒートマップ利用例

  1. 相関関係の分析:変数同士の関係を可視化する。
  2. 大規模データセット:多くのデータの傾向を一目で確認。
  3. ユーザー行動の可視化:人気コンテンツや使用頻度を視覚化。
  4. 時間変化の分析:データの時間的な変動を追跡。
  5. 異常検知:異常なデータポイントをすぐに発見。

参考コード

コードのポイント

  1. フォント設定: plt.rcParams['font.family'] = 'Meiryo' によって、日本語表示が必要な場合に適したフォントである「Meiryo」を使用しています。これにより、日本語のタイトルやラベルが正しく表示されます。
  2. 相関行列の計算: correlation = data.corr() で、データフレーム data の数値列間の相関係数を計算しています。corr() メソッドは、各数値列同士の相関を示す行列を生成し、値は -1(完全な負の相関)から 1(完全な正の相関)までの範囲で表されます。
    • 相関係数:相関係数が 1 に近い場合、2つの変数は強く正の相関があり、-1 に近い場合は強い負の相関があります。0 に近い場合、相関がほぼないことを示します。
  3. ヒートマップの描画:
    • sns.heatmap(correlation, annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5) で、相関行列のヒートマップを描画しています。
      • annot=True:各セルに相関係数を表示します。
      • cmap='coolwarm':青から赤のグラデーションのカラーマップを使用して、相関の強さと符号を視覚的に表現しています。正の相関は赤、負の相関は青で表示されます。
      • fmt='.2f':相関係数を小数点以下2桁で表示します。
      • linewidths=0.5:各セルの間に0.5ピクセルの線を引いて、セルを視覚的に区切ります。
  4. ヒートマップのサイズ設定: plt.figure(figsize=(10, 8)) で、ヒートマップの表示サイズを設定しています。幅が10インチ、高さが8インチのグラフになります。
  5. タイトルとレイアウトの調整:
    • plt.title("相関関係のヒートマップ", fontsize=16) で、ヒートマップのタイトルを設定し、フォントサイズを16ポイントにしています。
    • plt.xticks(rotation=45, ha='right') でX軸のラベル(変数名)を45度回転させ、右揃えにしています。これにより、長いラベルが重ならずに表示されます。
    • plt.yticks(rotation=0) で、Y軸のラベル(変数名)は回転させずに表示しています。
    • plt.tight_layout() によって、グラフが画面に適切に収まるように余白を自動で調整します。
  6. ヒートマップの表示: plt.show() によって、作成したヒートマップを表示します。

出力

まとめ

Pythonはそのシンプルで読みやすい構文と、強力なデータ分析ライブラリを持つため、初心者からプロフェッショナルまで幅広く使用されています。本記事では、データの収集から前処理、可視化、分析、インサイト抽出までの流れを紹介しました。特に、pandasやMatplotlibといったライブラリを活用することで、データを扱う際の作業が非常に効率的になることを実感いただけたかと思います。

データ分析は、単にデータを確認するだけでなく、その背景にあるトレンドやパターンを理解し、現実世界の課題に活かす重要なプロセスです。ぜひ、今回のステップを参考に、実際のデータを使ってより深い分析に挑戦してみてください。

また、Pythonにはこれからも多くの可能性が広がっており、データサイエンス、機械学習、人工知能分野でもさらなる発展が期待されています。Pythonを学び続けることで、データから新たな価値を引き出すスキルを手に入れることができるでしょう。

次回は、より具体的な分析事例や、Pythonの高度なデータ分析手法について掘り下げていきます。データの力を使って、あなたのプロジェクトやビジネスをさらに成長させていきましょう!

もしわからないことがあれば、このブログやXに質問等を投げていただければと思います。

Xのアカウントはこちら

ダダのアカウント

プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?

ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。

このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!

プログラミングを視覚的に理解したい方やプログラミングで絵を書いてみたい方はUdemyで講座も作っているのでこちらも参考にしてみてください

Udemy講座

Processing Python講座

ChatGPTでPythonの学習を始めてみたい方は以下の記事を参考にしてみてください

プログラミングを学びたいけど、どこから始めたらいいのか分からない、自分に合っているか不安…そんな悩みを持っている方におすすめしたいのが、 無料相談 サービスです!

この無料相談では、あなたの現状や目標に合わせて、最適な学習プランを一緒に考えてくれます。どんなスキルが必要なのか、どうやって学習を進めると効果的かを具体的にアドバイスしてもらえるので、無駄なく効率的にスタートを切ることができます。

さらに、プログラミング学習には同じ目標を持つ 仲間 がいること、そして頼りになる メンター の存在がとても大きな支えになります。独学ではどうしてもつまずきやすい部分も、メンターがあなたの成長に合わせて親身にサポートしてくれるので、安心して学びを進められます。

まずは 無料相談 で、あなたに合ったプランを見つけて、スキルアップへの第一歩を踏み出してみませんか?今なら、迷っている方でも気軽に相談できるチャンスです!

テックアカデミー無料メンター相談

-プログラミング学習
-, , , ,