䞀般瀟団法人Python゚ンゞニア育成掚進協䌚以䞋、圓協䌚の顧問理事の寺田孊です。私は詊隓の問題策定ずコミュニティ連携を行う立堎です。 前回は開発のコツに぀いおお話ししたした。今回はデヌタ分析の初孊者に向けお、Pythonでできるデヌタ分析ず孊習のコツ、圹立぀ツヌルずその付き合い方に぀いおお話ししたいず思いたす。

  • 䞀般瀟団法人Python゚ンゞニア育成掚進協䌚 顧問理事 寺田孊氏

    著者寺田孊
    䞀般瀟団法人Python゚ンゞニア育成掚進協䌚 顧問理事

Excelでの手䜜業分析から、Pythonでの自動分析ぞ

先日、デヌタベヌスに保存された数䞇件のアンケヌト調査デヌタを、Pythonを䜿っお自動的に分析するずいうプロゞェクトがありたした。 倧量のデヌタを取り扱う堎合、たいおいはExcelに保存し、関数やExcelの機胜を駆䜿しおデヌタの集蚈や分析を行っおいるず思いたす。実際、Excelは芖芚的に扱いやすく、数䞇件のデヌタの取り扱いもできたすし、䟿利なので、個人的には今埌もExcelをむンタフェヌスずしお積極的に䜿おうず思えるツヌルです。

ただ、Excelで毎回集蚈するのは再珟性や繰り返しなどを想定するずけっこう面倒ではないでしょうか。Pythonを少し勉匷すれば、もう少し簡単にいろいろなこずができるようになりたす。

泚意が必芁なのは、倧量のデヌタを耇数の切り口で集蚈したい堎合、その凊理を䞀぀のプログラムでできるかずいえば、そうではない点です。䞭間構造を䜜り、最終的に目指すゎヌルに向けお䞊手くたずめおいく必芁がありたす。 それにはどうやっおデヌタを䜜っおいくかを考えお蚭蚈する必芁がありたすが、蚭蚈䞊きれいにできたなず思っおも、実際に動かしおみるず想定通りに動かないこずはもちろんありたす。 私自身、いただにプログラムを曞いたあずに「これでは分かりにくいな  」ず唞りながら修正しおいたりしたすので、詊行錯誀はずっず続けおいくものだず思っお取り組んでほしいなず思いたす。

「簡単・䟿利にしたい」が“孊ぶ意味を埗る”きっかけに

ずころで、冒頭のアンケヌト調査のプロゞェクトが始たったきっかけは、DXやデヌタ分析に興味を持った方々から、Pythonを教えおほしいず蚀われたこずから始たりたす。 教わったこずで簡単にできそう! ず思えるようになり、これたでExcelで苊劎しおいた集蚈を汎甚化するこず、そしお最終的にWeb化やPDFの自動生成などの可胜性を考えられるようになりたした。 確かにアンケヌトを集蚈するずいうだけであれば耇雑な凊理は行われたせん。ですが、教わったこずで発想が倉わり、必芁なものにたずめるずいうこずの重芁性を再認識するこずができたようです。そしおその先でやりたいこずや、そういう可胜性があるず芋぀けられたこずで、孊ぶこずの意味を埗るこずができたした。

デヌタ分析を新たに孊びたいず考えおいるなら、この事䟋のように、たずは埗た知識をもずに、自分の手元にあるデヌタや、やりたいこずを芋぀め、簡単にする方法や、その䞀歩先に進むためにどのように進めおいくかずいったこずから考えおいくず、孊ぶこずの意味を埗るきっかけになるず思いたす。

デヌタ分析はあくたで入り口、ゎヌルに向けお適切な手段を取るこず

デヌタ分析ず聞くず難しく考えがちですが、アンケヌトの集蚈だろうず、ちょっずした自動化だろうず、デヌタ分析はあくたで入り口でしかありたせん。ただ取り組むずきに、汎甚的なツヌルを䜿うか、Pythonを䜿っお自分で䜜るかずいう遞択があるにすぎないのです。

たずえば、私はよくログ解析でPythonを䜿甚したす。もちろん、ログ解析ツヌルにはGoogle AnalyticsやElasticsearchなどさたざたな専甚のツヌルがありたすので、そこからログを取埗しお解析を行うこずもありたすが、緊急性が高い堎合や、生ログを解析しお新たな発芋をしたいずき、ログの䞭で特定のデヌタIP、時間、゚ラヌなどのみを抜き出したいずき、デヌタの共有を容易にしたいずいった堎合には、Pythonずいう手段を遞びたす。

たた、サヌバ管理者が持぀ログデヌタや、マヌケティング郚門が持぀垂堎調査デヌタなどがたずたったExcelから、デヌタを集蚈・分析しお、違う芋え方に敎えおExcelに戻すこずもありたす。これもデヌタ分析の䞀぀の圚り方です。

分析した結果の衚珟方法にはWebずいう手段も確かにありたす。栌奜よく衚珟したいずいう気持ちも圓然理解できたすが、WebにはWebの知識が必芁なので、たずはExcelに戻すずいうような、簡単なゎヌルを蚭定するこずから始めおみるずいいず思いたす。

Pythonで䜿える䟿利なラむブラリモゞュヌル

Pythonにはデヌタ分析で䜿甚できる䟿利なツヌルがたくさんありたすが、よく䜿甚されるものずしおは次のようなツヌルが挙げられたす。

â–ŒJupyter LabJupyter Notebook

Webブラりザ䞊でPythonなどを実行できる。実隓ノヌトのようなむメヌゞで、実隓のためにコヌドを少しだけ曞きたいずきに䜿甚されおいる。デヌタサむ゚ンティストが䜿甚するケヌスが倚く、Notebookで䜜成したものを成果物ずしお顧客に提出するこずもある。

â–Œpandas

デヌタ分析を支揎する機胜が䞀通りそろったラむブラリで、数衚および時系列デヌタを操䜜するためのデヌタ構造ず挔算が䜿甚できる。デヌタ分析分野で必須ずいえる。

â–Œopenpyxl

Excelファむルを倉曎せずに、読み曞きなどの操䜜ができる。

â–ŒGoogle Colaboratory

Webブラりザ䞊でPythonを実行できるサヌビス。Googleのサヌバ䞊で動くため、Google Driveの容量15GBを䞊限ずするなど制限がある。デヌタのバックアップ方法やセッションが切れたずきの埩元の面倒さに目を぀むれば、環境構築や蚭定をしなくおもすぐに䜿甚でき、CSVでの゚クスポヌトも可胜なため䜿いやすい。

pandasなどのツヌルは、必芁な人党員がある皋床䜿えるようになるずいいなず考えおいたす。 たずえばサヌバログでいえば、システム管理者でない限り、ログデヌタだけを枡されおもどう凊理したらいいかわからないず思いたす。ですが、pandasが䜿えれば、1時間ごずのアクセス数や゚ラヌ件数などのデヌタフレヌムに入っおいる情報なら、1行曞けばそのデヌタだけを抜き出しお取埗するこずができたす。ツヌルの䜿い方を習埗できれば、デヌタ分析も捗りたす。 ツヌルの䜿い方にはそれぞれに適した䜿い方ず工倫がありたすし、そうした工倫ができるようになるには孊習を远加で行う必芁があるケヌスも圓然ありたすので、ぜひ芚えおいただければず思いたす。

ツヌルずの付き合い方

䞊に挙げたような有名なツヌル以倖にもいろいろ䟿利なツヌルは存圚したすが、実のずころ、私は実瞟があり、信頌できる必芁なツヌルず刀断したものしか䜿甚したせん。ずいうのも、そのツヌルがい぀たで存続するかわからないためです。 実瞟のあるものなら突然䜿えなくなるこずはなく、バグもほずんどありたせんし、安党性に䞍安を抱くこずもありたせん。もし、やりたいこずができるラむブラリを芋぀けたずしおも、安党性を䞍安に思いながら䜿うくらいなら自分で䜜るようにしおいたす。

たた、Pythonは既存のプログラムを真䌌しお、pandasなどのツヌルだけあればある皋床のこずはできおしたいたすが、Pythonをより知っおいれば、コヌドで解決できる範囲を増やせたす。 できる範囲が広がれば、既存のプログラムを改善しお凊理にかかる時間を早くするこずも可胜になりたす。

さいごに

デヌタ分析をはじめるのなら、難しいゎヌルを最初から蚭定するのではなく、興味のあるものや、仕事などの身近なずころから始めるず手に銎染みやすいのでおすすめです。そうした堎合、䞀定期間で䜕床も集䞭的に繰り返すこずになるので、しばらく觊れなくおもすぐに思い出すこずができたす。その䞀方で、銎染みがない堎合、少し䜿わないずあっずいう間に忘れおしたうこずがありたす。 私自身、デヌタ分析の分野は5幎以䞊の経隓を重ねおきたした。忘れおしたっお面倒に思うこずもありたすが、手に銎染んだツヌルができたこずで思い出すのも早くなりたしたし、やりたいこずができたずきに深く孊んだこずで理解が進み、より銎染んでいく感芚がありたす。

どうやっお勉匷すればいいのかず問われるず難しい郚分ではありたすが、たずは初めの䞀歩ずしお、次のようなこずから始めおみおください。

(1)緎習問題ではなく、自分のやりたいこずを芋぀けお解決方法を考えおみる
(2)機胜分割ずいう考え方を身に぀け、芁所に応じた手法やツヌルを遞択できるようになる
(3)プログラム化が難しい郚分は手段を孊び぀぀、いったん手動で行うか、できる人に協力しおもらう

もし、最初の第䞀歩をなかなか螏み出せないずいう方は、スクヌルや倧孊で適切な講矩を受けるずいうのもいいでしょう。 本で勉匷できるのであればそれでいいず思いたすし、動画を芋るずいう手もありたす。ただ孊びきれない郚分はどうしおも出おきたすので、くじけずに孊び続けるためにも仲間䜜りはけっこう重芁です。 仲間を芋぀ける手段ずしおは、コミュニティずいう手がありたす。心理的な障壁を感じる方が倚いように思いたすが、コミュニティに飛び蟌んで分かるこずはたくさんあるず思いたすので機䌚があれば参加しおみおください。

たた、デヌタ分析の経隓がない方が圓協䌚のデヌタ分析詊隓を垌望される堎合、䜕から始めたらいいのかわからないず思うのは仕方のないこずでしょう。䜕を目的に勉匷しおいくのかを考えお孊習しおいかないず、勉匷のための勉匷ずなっお蟛いだけですので、目的を決めるこずを倧切に、孊習を進めおもらえればいいなず思っおいたす。 詊隓の䞻教材である教科曞は、デヌタ分析孊者がよく䜿う蚀葉で曞かれおおり、そしお、よく䜿われるツヌルの䜿い方や垞識的な䜿い方も曞かれおいたすので、参考にしおいただければず思いたす。

圓協䌚の最新情報は公匏サむトか、公匏Facebookペヌゞでご芧いただけたす。FacebookペヌゞではPythonに関連したニュヌスもお知らせしおいたすので、ぜひフォロヌしおみおください。たた、YouTubeチャンネル「Python゚ンゞニア認定詊隓」では、私が詊隓抂芁や孊習のコツをお話ししたものや、合栌した方のコメント動画を公開しおいたす。こちらもぜひご芧ください。

[PR]提䟛Python゚ンゞニア育成掚進協䌚