Pythonデータ分析の最強ツール!新人エンジニアのためのpandas入門講座
こんにちは。ゆうせいです。
新人エンジニアとして開発に携わっていると、「この大量のデータを集計してほしい」「このCSVファイルから必要な情報だけ抜き出して」といった依頼を受ける場面が、これからきっと出てきます。Excelで一つひとつ手作業で…なんてことを想像して、少し憂鬱になっていませんか?
そんなあなたの強力な味方になるのが、今回ご紹介するpandasです!pandasを使えるようになると、これまで何時間もかかっていたデータ処理の作業が、ほんの数分で終わるかもしれません。
この記事では、「pandasって聞いたことはあるけど、何ができるの?」というあなたのために、その基本から魅力、そして学び方まで、分かりやすく解説していきますね。
そもそもpandasって何者?
まずは一番大事な質問からお答えしましょう。pandasとは一体何なのでしょうか?
一言でいうと、pandasは「PythonでExcelのような表形式のデータを自由自在に操るための道具(ライブラリ)」です。
Excelはとても便利なツールですが、数十万、数百万行といった大量のデータを開こうとすると、パソコンが固まってしまった経験はありませんか?また、毎月同じ形式のレポートを作成するために、同じようなコピー&ペーストや並べ替えを繰り返すのは、少し退屈な作業ですよね。
pandasは、そういったExcelが苦手とすることを、プログラミングの力で解決してくれます。大量のデータを高速に処理したり、面倒な定型作業を自動化したりすることが得意なのです。
覚えておきたい2つの専門用語
pandasを学ぶ上で、避けては通れない専門用語が2つあります。でも、安心してください。Excelに例えればすぐに理解できますよ。
- データフレーム (DataFrame)
- シリーズ (Series)
データフレーム (DataFrame)
データフレームは、ずばり「Excelのシートそのもの」だと考えてください。行と列からなる、二次元の表データのことです。顧客リスト、売上データ、アンケート結果など、私たちが普段「データ」として目にするものの多くは、このデータフレームの形で扱うことができます。
名前 | 年齢 | 居住地 |
鈴木 | 25 | 東京 |
佐藤 | 32 | 大阪 |
高橋 | 19 | 福岡 |
Google スプレッドシートにエクスポート
上記のような表全体が、pandasでいうところのデータフレームにあたります。
シリーズ (Series)
シリーズはもっと簡単です。「データフレームから1つの列だけを抜き出したもの」がシリーズです。Excelのシートから「年齢」の列だけを選択した状態をイメージしてください。
年齢 |
25 |
32 |
19 |
Google スプレッドシートにエクスポート
このように、データフレームが「表全体」なら、シリーズは「表の中の1列」という関係性だけ、まずは覚えておきましょう!
pandasを使うメリット
では、Excelではなくpandasを使うと、具体的にどんないいことがあるのでしょうか。そのメリットをいくつかご紹介します。
1. 大量のデータを高速に扱える
pandasは、内部的に非常に効率的な計算を行うように作られています。そのため、Excelではフリーズしてしまうような巨大なデータセットでも、ストレスなく読み込み、検索し、並べ替えることが可能です。データ分析の世界では、まさに必須のツールと言えるでしょう。
2. データの「お掃除」が簡単
実際のデータは、残念ながらいつも綺麗な状態とは限りません。入力ミスで空欄になっていたり(これを欠損値と呼びます)、全角と半角が混ざっていたり、不要なデータが含まれていたりします。
pandasを使えば、こういった「汚れたデータ」を綺麗にする作業(データクレンジングや前処理と呼びます)を、数行のコードで実行できます。例えば、「この列に空欄があったら、代わりに0を自動で入力して!」といった指示を簡単に出せるのです。
3. 多様なファイル形式に対応
CSVファイルやExcelファイルはもちろんのこと、Webページの表、データベース(SQL)など、さまざまな形式のデータを簡単に読み込んで、データフレームとして扱うことができます。あちこちに散らばったデータを、まずpandasに集約して分析を始める、といった使い方ができるのは非常に強力です。
pandasのデメリット(注意点)
もちろん、pandasにも注意すべき点はあります。
それは、学習コストがかかることです。マウスで直感的に操作できるExcelとは違い、pandasを操作するにはPythonのコードを書く必要があります。「この列とあの列を合計する」「この条件に合う行だけを抽出する」といった操作の一つひとつに対応する書き方を、覚える必要があります。
最初は少し戸惑うかもしれませんが、一度覚えてしまえば、その知識はずっとあなたの武器になります。焦らず、一つひとつできることを増やしていきましょう!
実際にコードを見てみよう
百聞は一見に如かず、ですね。pandasが実際にどのように使われるのか、簡単なコードを見てみましょう。
# まずはpandasという道具を使えるように準備します
import pandas as pd
# 辞書データを用意します
data = {
'product_name': ['Apple', 'Orange', 'Grape'],
'price': [150, 100, 200],
'stock': [30, 45, 25]
}
# 用意したデータからデータフレームを作成します
df = pd.DataFrame(data)
# 作成したデータフレームの先頭5行を表示してみます
print(df.head())
このコードを実行すると、以下のような表が出力されます。
product_name price stock
0 Apple 150 30
1 Orange 100 45
2 Grape 200 25
このように、Pythonのコードを使って、Excelのような表を簡単に作成し、操作することができるのです。
今後の学習の指針
この記事を読んで、「pandas、ちょっと面白そうかも」と感じていただけたなら、とても嬉しいです。では、次に何をすればよいでしょうか?
- 環境を整える: まずは、ご自身のパソコンでpandasを使えるようにしましょう。Pythonの環境構築には、データ分析に必要なライブラリが一通り揃っている「Anaconda」をインストールするのが一番簡単でおすすめです。
- データを読み込んでみる: 何か簡単なCSVファイルやExcelファイルを用意して、pandasで読み込む練習をしてみてください。
pd.read_csv('ファイル名')
やpd.read_excel('ファイル名')
といった一行だけで、データを読み込めます。 - データを観察する: 読み込んだデータがどんなものか、pandasの機能を使って観察してみましょう。
df.head()
: データの最初の数行を表示して、中身をざっと確認します。df.info()
: 各列にデータが何件入っているか、欠損値はないかなどを確認します。df.describe()
: 数値データの列について、平均値、最大値、最小値などの基本的な統計量をまとめて表示してくれます。
まずはこの「読み込んで、観察する」というステップを繰り返すだけでも、データに親しむ良い練習になります。
データ分析の世界への扉は、もう開かれました。ぜひpandasという強力な相棒と一緒に、新しいスキルを身につけていってくださいね!応援しています!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。