Pythonでできることを、現役エンジニアが解説してみた
プログラミングを知らない人でも、Pythonという言葉を聞いたことがある人は多いのではないでしょうか。
書店などに行くと、Pythonに関する書籍があふれていますが、プログラミングを知らない人からするとPythonを学ぶと何がうれしいのか、
さっぱりわかりませんよね。
そこで今回は、Pythonを学ぶとどんなことができるようになるのかを、普段プログラミングに触れていない人にもわかりやすくまとめてみたいと思います。一緒にどうやればできるようになるのかについても解説します。
ちなみに!先に言っておきますが、Pythonができると めちゃくちゃ 便利です!また、初学者でも学びやすい言語なので、エンジニアではない人でも非常に重宝します。
このツイートに書いたとおり、Python使えると本当に便利なんですよね~
目次 (PRも含まれます)
Pythonでできること
では、Pythonではどういうことができるのでしょうか。結論からいうと、
- Webスクレイピング :データの自動収集が行える
- Web API:TwitterのAPIを利用して、インフルエンサーのツイートデータを収集
- データ分析:データの前処理がすごく簡単になる
Pythonでスクレイピングという技術で、自動でネット上のデータを取得することができる
Pythonでは、スクレイピングという技術があります。スクレイピングとは、簡単に言うとプログラミングで自動でWebサイトにアクセスして、インターネット上の情報を取得して、ダウンロードできてしまう技術です。
例えば、僕の友人では、海外の商品を仕入れて、日本で販売している人がいます。そして、そのために海外のWebサイトにアクセスして、毎日そのサイトに在庫があるのかを確認していたんですよね。でも、正直めっちゃくちゃ時間がかかるわけで、大変なんです。
でも、Pythonを学んでスクレイピングの技術を学ぶと、その面倒なルーティンを完全に自動化できます。Webサイトの中のすべての商品データにアクセスして、その中で在庫があるものだけピックアップして、CSVファイルやExcelファイルにダウンロードすることも可能なわけです。クラウドソーシングの案件で、以前これを自動化してあげたところ、お客さんが本当に喜んでくれました。
昔クラウドソーシングである海外の洋服の輸入業者のお客さんに、海外のECサイトの在庫確認に1時間かけていた作業を、Pythonで自動化して自動で毎日CSVに落とし込めるようにしたらすごく喜んでたなぁ。毎日データとれるから売れ筋なものとかちゃんと予測できるしね。マーケターがPython使えると超便利。
— DAI (@never_be_a_pm) July 21, 2018
他にも、例えば営業先の顧客リストを創りたいみたいなときも、スクレイピングを利用すると非常に簡単に作ることができますね。僕自身が以前に作ったチュートリアルだと、あるWebサイトの記事名と記事URLを自動ダウンロードできるように解説しました。この技術を学ぶと、営業リストを自動で作成することもできます。
購入させていただきました!営業リストをゴリゴリ作って行きます。
Pythonによるスクレイピング超絶入門|Dai @never_be_a_pm|note(ノート) https://t.co/mhnEn2LQWk
— いちせ@someru (@kohei_someru) July 14, 2018
昔僕がやっていたのは、クラウドソーシングサイトでどういうスキルが一番単価が高いのかを調べた時もスクレイピングが非常に便利でしたね
https://twitter.com/never_be_a_pm/status/933477374238142467
PythonでAPIという技術を利用すれば、普通だと取得できない他人のツイッターのデータを取得して分析することができる
僕はフォロワーが1.1万人いるのですが、このフォロワーを獲得するためにはかなりツイッターのデータを分析したうえで施策を考えているんですよね。
だからインフルエンサーのツイートとかって、めっちゃくちゃ勉強しているんですよ。どんなツイートが伸びやすいのかとか、favされやすいのかとか。
でも普通にツイッターを利用して、他人のツイートをさかのぼろうとすると、データがとれないんですよね。手打ちでやるのは相当面倒くさいです。
でも、Pythonが使えれば、APIというデータの窓口からツイッターにアクセスすることができます。APIとは、あるウェブサイトから情報を取得したり、情報を送信することができる窓口のことです。
ツイッターはAPIを提供しているので、例えばPythonからAPIを経由してツイッターに投稿するようなこともできるんですよね。ちなみにAPIとスクレイピングからのデータ取得の違いは、APIは公式でデータが取得できる窓口なのに対し、スクレイピングは公式の窓口からデータ取得しているわけではないということになります。
僕がよく使うのは、ツイッターのAPIを利用して、他人のツイートをすべて取得したりできます。自分がツイートを参考にしているインフルエンサー10人の過去500件のツイートをPythonでデータを取得して、そのデータをもとに特にRTが多かったものを並び替えるなんてことも、Pythonを使うと学ぶことができます。めっちゃくちゃ便利じゃないですか?
あとは例えば、自分のツイートで特に伸びたツイートとかをAPI経由でデータを抽出して、自分の伸びるツイートの特徴を洗い出してみると、伸びやすいツイートってしやすくなりますよね。実際僕は過去のツイートを5000件くらい取得して、特に伸びたツイートを分類してひたすらツイートをしたら、フォロワーが5カ月で6000人くらい増えました。
5月はフォロワー5000人くらいだったんだけど、自分のツイートのデータを抽出して、ツイートの特徴をすべて分類して伸びやすいツイートの特徴を可視化して、それ通りツイートしたら本当に分析通り伸びて今2カ月で1.1万フォロワーになった。こういうデータへのアクセスと分析もPython使うと簡単でよい。
— DAI (@never_be_a_pm) July 21, 2018
また、Pythonを用いたTwitterの分析Webアプリの開発方法もManajobの『Pythonコース』で学習できます。
Pythonを使えば、データの加工をエクセルより簡単にすることができる
例えば、営業チームのExcelを取得して、ほかのチームとデータを結合したいみたいな場合がありますよね。
でも人によっては、売上を¥11,000 と書いている人がいたり、11000円と書いていたり、¥11000と書いている人がいる場合ってよくあると思うんですよ。
これをエクセルで全部処理しようとすると、途方もなく時間がかかります。
でも、Pythonを利用してデータの加工を行うと、3行くらいのスクリプトで全部きれいに整理することができるんですよね。下のコードはイメージですが、こんな感じ。
import pandas as pd # データを加工できるツールを読み込む
df = pd.read_csv("text.csv")# CSVのデータを読み込む
df["price"] = df[df["price"]].replace("円", "") #円と書いてある部分を消すことができる
エクセルで人力でデータの加工をしていたのがあほらしくなってくるくらい、Pythonができると便利です。
Pythonを使えば、データ分析ができる
例えば、データを処理して、それを折れ線グラフや円グラフに可視化したい場合って、多くの人がエクセルを使うと思うんですけど、エクセルで対応しているグラフ以外で可視化したい場合もありますよね。例えば、ワードクラウドと呼ばれるような可視化の方法もありますが、エクセルではできません。
また、可視化に限らず、込み入った統計解析をしたい方もいらっしゃると思います。
たとえば二項ロジスティック回帰分析を過去にエクセル上でしようとしたのですが、エクセルではできずに非常に困った記憶があります。(エクセルはぎりぎり重回帰分析ぐらいまで)
しかし、Pythonではほぼすべてのグラフ表示に対応していたり、AIと呼ばれるような機械学習の統計解析方法についてもすべて網羅しています。PythonではMatplotlibというライブラリ(ツール)を利用すれば、簡単にグラフの描画を行うことができるのです。
また、Pythonを利用して他人にプレゼン資料が創れるJupyter Notebookを利用すれば、そのデータ分析の過程もWeb上で共有できるのです。本当に便利ですよね。
また、データの取得から加工、分析までもシームレスにできるのも、Pythonの良い点です。
例えば、メルカリのデータを取得して、こんな感じで可視化をすることもできるんですよね。これも全部Pythonでやっています。
https://twitter.com/never_be_a_pm/status/930444641022853121
PythonはAIのライブラリが最先端である
AIを学んでみたい人も多いと思いますが、AIのライブラリが豊富なのはRという言語とPythonです。(一応ほかにもJuliaなんてものもあります)
機械学習のライブラリ、ディープラーニングのライブラリが豊富なので、AIを学びたいという方はPython一択かと思います。
Pythonを使えば、Webアプリを作ることができる
例えば、ログインが必要なWebアプリを作りたい人もいるかもしれません。
Pythonを使えば、Webアプリケーションを作ることができます。PythonでWebアプリを作るためには、HTML, CSS, JavaScriptなどWebページの見た目を作る言語と、Webアプリを作るためのフレームワークDjango、Flask、またデータを保存するSQLを学ぶ必要があります。
僕が以前に作ったのは、メルカリ上のデータをWebの画面からポチポチするだけでダウンロードできるようなシステムです。こんな感じでスクレイピングとWebアプリをかけ合わせたりすることもできますね。
https://twitter.com/never_be_a_pm/status/939372686093848576
なのでほかのスキルと比べると難易度が高いですが、AIとも相性がよいので、AIアプリをつくりたいなんてときもPythonが非常におすすめです。
具体的にどのように作ればいいかについては、こちらの記事も読んでみてください。
学習方法
ということで、Pythonを学ぶと様々なことができるようになります。再度やりたいこと別に、学ぶべきことをまとめてみます。
やりたいこと | 学ぶべき言語 | 学ぶべきPythonライブラリ | 難易度 | 使える場面 |
スクレイピング | Python | BeautifulSoup, Selenium | 低 | 営業リストの作成 |
データの加工 | Python | Pandas | 低 | データの前処理 |
データ分析 | Python | Pandas, Matplotlib, Numpy | 中 | データの可視化、統計解析 |
AI | Python | scikit-learn, keras等 | 高 | 機械学習、ディープラーニングの分析 |
Webアプリ開発 | Python, HTML, CSS, JavaScript, SQL | Django, Flask | 高 | Webサイトの作成 |
スクレイピング
スクレイピングに関しては、BeautifulSoupやSeleniumというライブラリがあります。BeautifulSoupは、取得したHTMLデータを切り貼りできるライブラリです。Seleniumは、ログインが必要なサイトのスクレイピング等に利用することが多いです。
学習教材としては、Manajobの『Pythonコース』がおすすめです。実際にPythonとPythonのライブラリを使用して、以下のことが学習できます。
- ゼロから実際のブログのデータをスクレイピングして、CSVに出力する方法
- ブログのカテゴリから全記事をダウンロードする方法
データ分析
データ分析に関しては、データ前処理のライブラリPandas、図形描画ライブラリであるMatplotlib、計算高速化ライブラリであるNumpyを学ぶことになると思います。こちらも以下のチュートリアルで学習することができるので、利用してみてください。
具体的には、実際に生のツイッターのデータを分析して、どういうツイートの特徴がリツイートされやすいのかを、データをもとに分析することができます。
AI
AI開発に関しては、機械学習やディープラーニングで、scikit-learnやTensor-flow, Keras等のライブラリを勉強する必要があります。こちらもnoteで全て学習することができます。
おすすめの教材は、【AIプログラミング】LINEに画像を送ったら自動で文字起こししてくれる機械学習アプリを作ろう です。これは、Google Apps Scriptを利用して、LINEで送った画像から文字を起こして返してくれるというアプリです。Pythonではないですが、非常に楽しくAIを学ぶことができるかと思います。
エンジニアだった10年前を思い出してやったらすぐできた。このnote素晴らしいです。ド素人でもできます。
【AIプログラミング】LINEに画像を送ったら自動で文字起こししてくれる機械学習アプリを作ろう|Dai @never_be_a_pm|note(ノート) https://t.co/RZfBhCD4Jb— Yoshio FUJIWARA (@yoshio81) August 17, 2018
また、Pythonでスクレイピングした画像を、顔認識するアプリを作るチュートリアル、「スケベAI「スケベ博士」をPythonとGoogle Apps Scriptで作るスケベ・チュートリアルを公開します」もおすすめです。
購入した。自分の幼い頃と長女がどのくらい似ているか判定するものを作りたいだけで、決してスケベ心からではないのだ。ないのだ。
スケベAI「スケベ博士」をPythonとGoogle Apps Scriptで作るスケベ・チュートリアルを公開します|Dai @never_be_a_pm|note(ノート) https://t.co/uJKuBX1oC1— Yoshio FUJIWARA (@yoshio81) August 18, 2018
DAIさんのど「スケベ博士」チュートリアル、内容がかなり良さそうだったので購入しました。挑戦してみます!ありがとうございます。
スケベAI「スケベ博士」をPythonとGoogle Apps Scriptで作るスケベ・チュートリアルを公開します|Dai @never_be_a_pm|note(ノート) https://t.co/ku3Lmf4lpZ
— bluejin55 (@bluejin55) August 1, 2018
最初に、Pythonで画像をスクレイピングして取得して、それをMicrosoft Cognitive Face APIを利用して、画像を学習させて、顔認識までができるようになるアプリをつくることができます。
本気でAI開発を学びたいなら、プログラミングスクールで学習するのもおすすめです。解説記事も読んでみてください。
Webアプリ開発
Webアプリ開発に関しては、FlaskやDjangoなどのwebフレームワークが有名です。
ManajobのPythonコースやUdemyなどでPythonを用いたWebアプリケーション開発のチュートリアルがあるので、そちらを利用すると良いでしょう。
その場合は、Progateやキカガクの脱ブラックボックスコースでPythonの基礎を学習してからトライするのがおすすめです。
最後に:Pythonでできることまとめ
ということで、Pythonでできることについてまとめました
Pythonはプログラマー以外の人が学習すると、非常に市場価値があがります。
Python本当に便利だ。
・毎日の自分の記事の検索順位を自動取得してSlackに通知
・Web上のデータを抜き出して、営業顧客リストを毎日自動作成
・ツイッターでインフルエンサーのRTが多いツイートを自動取得してCSVにダウンロードしてデータ分析マーケターが使えると超いいね。
— DAI (@never_be_a_pm) July 21, 2018
自分もマーケターですががPythonは覚えやすいので本当ツイートで言っている通りマジで便利!! https://t.co/ENycLpvb0p
— AutomationMaster🤖INTP (@auto_tomochin) July 22, 2018