サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
tanuhack.com
普段、筆者がデータの前処理で使っているpandasやNumPy、scikit-learnなどのモジュールの使い方を逆引きのリファレンス形式でまとめました。 一部のサンプルデータや前処理の手法については、データサイエンティスト協会の100本ノック(構造化データ加工編)を参考にさせていただきました。素晴らしいコンテンツをご用意頂いたこと本当に感謝します。 それでは、以下のモジュールをインポートして、この記事をデータ前処理時の辞書代わりにして利用してください。 モジュールのインポート import numpy as np import pandas as pd from sklearn import preprocessing as pp from sklearn.model_selection import train_test_split from imblearn.under_sampli
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Hello Jinja2</title> </head> <body> <h1>Hello Jinja2</h1> <p>Jinja2でHTMLファイルを読み込みことに成功しました。</p> </body> </html>
この記事では、Seleniumでクローリング・スクレイピングを実践で安定稼働させるために行うべき設定を3つにまとめました。 待機処理 エラー内容を通知する 処理をリトライする ちゃんと設定すれば、不安定なSeleniumでも、安定して定期実行できるようになるでしょう…! 厳しいことを言うと、苦労して作ったSeleniumテストが不安定だったら現場には無価値ですしね〜。 この記事にまとめた内容が活かされて、安定したクローリング・スクレイピングが行えるようになったら…と祈るばかりです。 待機処理 Seleniumを使用したクローリング・スクレイピングのプログラムを安定稼働させるために、まず設定して欲しい項目があります。 それは、Web Driverの待機処理を追加することです。 Seleniumのエラーの原因は、find_element_xxxメソッドで、指定した要素が見つからないことが95%
騎士王(アーミー賞)と道王(ロンゲスト)の大切さ 7〜8点止まりの人は総じて、『騎士王(アーミー賞)』もしくは『道王(ロンゲスト)』を持っていません。誰よりも早く10点になるためには、2点分の騎士王(アーミー賞)と道王(ロンゲスト)は、是が非でも欲しいです。カタンで勝てない人は、まずこのどっちかを絶対取りに行くようにしてみましょう 同じ7〜8点でも勝ちを狙いやすいものと、そうでないものがある カタンでは勝利に近い7〜8点と勝利に遠い7〜8点が存在します。どういうことかと言うと、前者は騎士王(アーミー賞)と道王(ロンゲスト)を持っていない状態で7点あったり、開拓地を建てたり、開拓地を都市に変えたりとまだまだ色んな動きができる状態のことを指しています。 一方後者は、騎士王(アーミー賞)と道王(ロンゲスト)を持っている状態で7点あったり、開拓地を建てたり、開拓地を都市に変えたりともう色んな動きは
この記事では、Pythonで作成したスクレイピング(Selenium, Beautiful Soup)のプログラムを、サーバー上(Heroku)に設置し、決まった時間に定期実行させる方法を紹介しています。 今回、AWSやGCPと言った数あるIaaSやPaaSの中で、HerokuというPaaSを選んだ理由は4つあります。
こんにちは、ハッカー見習いのたぬ(@tanuhack)です! Seleniumを使って、セキュリティが高めなWebサイトを自動操作をするときの強敵といえば何が思いつきますか? そう、Googleの『2段階認証プロセス(6桁のパスコード)』ですよね!
Google Apps Scriptには、ログを確認する方法として、以下の2つの方法が用意されています。 Logger.log console.log そこで今回は、GASでログ出力する2つの方法(Logger.logとconsole.log)の使い方やログを確認する方法、開発目的に応じた使い分けを紹介します。
こんにちは、色んな効率化が大好きなたぬ(@tanuhack)です! スプレッドシートで表を作成するときに、シートの名前を取得したいことってありませんか? Excelでは、次のようにCELL関数と文字列を操作する関数を組み合わせることで、シート名を取得することが出来ました。
こんにちは、データサイエンティストのたぬ(@tanuhack)です! Pythonでグラフを描画するときによく使われているライブラリとして『Matplotlib』が挙げられます。 しかし、このMatplotlibは、多機能であるが故に設定が面倒だったり、美しいグラフが描けたとしても無駄にコードが長くなってしまったりと何かと問題が付きまとうと思いませんか? ヒストグラムで確認したいことと言えば、データの全体的な『ばらつき具合』を確認したいだけなのに、たかだかグラフの設定にそこまで時間を掛けられない…。 そこで今回はMatplotlibより、もっと簡単に美しいグラフが描ける『seaborn(シーボーン)』を使って、ヒストグラムを作成する方法を紹介します!
render_template関数 HTMLを読み込む Flaskパッケージのrender_template関数を使って、簡単にHTMLファイルを読み込むことができます。 その際、読み込みたいHTMLファイルは、templatesフォルダの中に必ず格納しなければなりません。以下のディレクトリを参考にしてください。 『jinja2_test』という作業フォルダを作成して、PythonとHTMLファイルを格納します。 app.py from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) index.ht
この記事は、PythonのPandasモジュールを使用して、CSVファイルの読み書きをする実践テクニックをまとめたものになっています。 PythonでCSVファイルを処理する方法はPandas以外にもたくさんありますが、私はPandas一択派です。 Pandasはデータの加工・分析に特化したモジュール 何千何万行に渡るデータ量でも高速に処理できる 複数のCSVをまとめて処理できる NumPyやSciPy、Matplotlibモジュールと親和性がある
こんにちは、データサイエンティストのたぬ(@tanuhack)です! 重回帰分析は『数字の予測』や『優先順位付け』に強く、ビジネスシーンにおけるデータ分析の中で、最も多用されている分析手法です。
細かい分析には向いていませんが、『数字のインパクト』や『時間の経過による数値の変化』などを視覚的に数値を把握・共有したい場合にオススメです。 数字だけが羅列してあるシートよりも、パッと見ただけで全体が伝わるようなシートの方が良いと思いませんか?(^^) データビジュアライゼーション(情報視覚化)の世界へ、ようこそ!それでは始めます。
1つのファイルを読み込む df = pd.read_csv('csvファイルのディレクトリ') 複数のファイルをまとめて読み込む from glop import glob csv_files_dir = glob('*.csv') # 『*』がワールドカード marge_csv = [] for f in csv_files_dir: marge_csv.append(pd.read_csv(f, encoding='文字コード')) # 1つのデータフレームに結合する # ignore_index=Trueでインデックスをリセット df = pd.concat(marge_csv, ignore_index=True) 【Python】PandasでCSVファイルを読み込み/書き出しする実践テクニック集 EXCELファイル df = pd.read_excel('EXCELファイルのデ
2Captchaとは 2Captcha公式ページ ロシアの会社が開発したreCAPTCHAを突破するためのプラットフォームです。 通常であれば、プログラムからreCAPTCHAにチェックをいれることは、ほぼ不可能レベルだと言われています。 では、なぜ2Captchaを使うだけで、可能なのでしょうか。 2Captchaの仕組み 2Captchaの仕組みを簡単に説明すると、reCAPTCHAのチェックボタンをネット上の『Worker』と呼ばれている人達に代わりに押してもらっているイメージです。 PythonのSeleniumで説明すると、プログラムの実行中にWorkerの誰かがリアルタイムで解錠した結果を2Captcha経由で受け取ると言ったところでしょう。 なので、2Captchaはプログラムで解錠しているように見えるけど、実際は人力…みたいなオチです。 使用方法 2Captchaを使うため
「EXCELなんか無くなって、みんなGoogleスプレッドシートに移行すればいいのに」と、いつも本気で思っている、たぬ(@tanuhack)です! EXCELやスプレッドシートで作ったシートに、後日データを挿入した後、シートの関数を手直す作業を繰り返していませんか? 例)SUM関数を使って、A1行から最終行までの和を求めたい データをA10の下に挿入する予定がないと確信している場合は、この方法が最適だと思います。 ですが、今後もA10の下にデータを挿入する予定があるのであれば、この方法は最善ではありません。 � なぜならデータを挿入した後に数式を手動で直さないといけないからです。 「な〜んだ。データを挿入したら、数式直すだけっしょ。楽勝じゃん。」 とか思ってませんか?そうであれば、その考えは直ちに修正するべきです。 もしデータを挿入して直す数式が100個とか10000個出てきても、同じこと
②セルの書式設定の条件…について、もう少し深ぼってみましょう。 セルの書式設定の条件 デフォルトの設定では、『空白ではないセル』が適用されています。 値が入力されているセルの背景色が緑に塗りつぶされている。 このような条件は、現状(2018年6月4日現在)19個用意されています。 空白セル 空白ではないセル 次を含むテキスト 次を含まないテキスト 次で始まるテキスト 次で終わるテキスト 完全一致するテキスト 日付 次より前の日付 次より後の日付 次より大きい 以上 次より小さい 以下 次と等しい 次と等しくない 次の間にある 次の間にない カスタム数式 実際に条件付き書式を使う場合は、この中から適したものを選択するという訳ですね。 まだ、あんまりイメージがつかないと思うので、3つほど具体例を紹介して、条件付き書式の便利さを実感していただこうと思います 土日と入力されたセルに色を付ける スプ
Pythonの『Selenium』というサードパーティ製のモジュールを用いれば、Google ChromeやFirefoxなどのブラウザで行っている操作を自動化することができます。 ある特定のWebページからデータを収集したりやファイルをダウンロードしたり…。
こんにちは、ハッカー見習いのたぬ(@tanuhack)です! Seleniumを使っていて、ボタンやテキストリンクを押した際に、target="_blank"で『別タブ』あるいは『別ウィンドウ』に飛ばされて、driverが新しいウィンドウに移動せずに操作できなくて困ったことはありませんか? 操作できない原因は、driver.current_urlが遷移先の前のURLになっているからです。 # driverで操作できるURLを表示する print(driver.current_url) つまるところ、driver.current_urlの表示が、遷移先のURLになっていればdriverで操作可能という訳です! そこで今回は、別タブや別ウィンドウに移動しても、サイトのセキュリティレベルに応じて、PythonのプログラムからWeb操作できるようにする2つの方法を紹介します。 [aside]補足
こんにちは、スプレッドシート大好き人間のたぬ(@tanuhack)です! Googleスプレッドシートという超強力な上位互換ソフトがあるにも関わらず、まだExcelやNumbersなどの表計算ソフトを使っている人は、正直終わってます。ひくほどイケてないです。 かつてはExcel大好き人間だった私が、スプレッドシートのことをここまでゴリ押しするのには、ちゃんとそれなりの理由があります…。 2012年に本格的にスタートしたHTML5という規格が世の中のWebサイトに広く浸透し、2018年となった今では『クラウド技術』が当たり前に色んなサービスで使用されています。 [aside]いまさら「クラウドって何?」という人はネットリテラシが無さすぎです。もっと、ネットのことを勉強しないとデジタル難民になりますよ。というか、もうなっています。そのレベルの人にまで手厚く教えられません。[/aside] この
通常であれば、上のようなやり方で調べざるを得ませんが、スクレイピングすればパソコンが勝手に情報を集めてくれるようになるんですよ!! 今回はPythonを使って、Googleの検索結果をスクレイピングしてスプレッドシートに保存する方法を紹介します。 [aside]Pythonのインストールがまだ終わってない人は、こちらを参考にインストールしてみて下さい! [Mac]未経験者向け!Pythonの『導入・初期設定』から『実行』まで紹介 [/aside]
カスタム数式の復習 まずは使い方を復習します。 カスタム数式の中で使える数式とは まず、大前提があります。 条件付き書式のカスタム数式で使える数式は、計算結果が『True』または『False』になるものだけです。 TrueやFalseを返す数式と言えば、『A=B』などの条件式を使ったり、AND関数やOR関数を一番外側で使ったり、が挙げられます。 極論から言えば、数式の計算結果がTrueかFalseになれば、カスタム数式として使えるという訳ですね! カスタム数式の書き方 例として、以下の表で売上が10,000円未満の行をすべて塗りつぶしたいとします。 STEP1:スタイルを適用させたいセルを選択 見出し以外のセルを選択します。 STEP2:条件付き書式を表示 やり方が2通りあるので、好きな方でお願いします。 [表示形式] > [条件付き書式] [右クリック] > [条件付き書式] 条件付き書
Google Cloud Platformの設定 Google Cloud Platform プロジェクトを新規作成する まずAPIを取得するプロジェクトを作成しないと何も始まらないので、プロジェクトを作成します。 STEP1:プロジェクトを選択 STEP2:新しいプロジェクトを選択 STEP3:プロジェクト名を入力 プロジェクトの名前を入力します。 今回はわかりやすく『spreadsheet-test』としました。 これでプロジェクトの作成が終了しましたので、次にGoogle DriveとGoogle SheetsのAPIを有効にします。 Google Drive APIを有効にする 外部(※今回はPython)からスプレッドシートを操作する場合は、Google DriveのAPIも有効にしなければいけません。 STEP1:サイドバーのライブラリを選択 STEP2:検索フォームでdriv
前提条件 前提として、以下のようにAPI認証まで完了しているものとします。 import gspread import json #ServiceAccountCredentials:Googleの各サービスへアクセスできるservice変数を生成します。 from oauth2client.service_account import ServiceAccountCredentials #2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行し続けなければならない scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] #認証情報設定 #ダウンロードしたjsonファイル名をクレデンシャル変数に設定(秘密鍵、Pythonファイルから読み込みしやすい位置に置
=QUERY(データ, クエリ, [見出し]) 例:QUERY(A3:C21,"WHERE B='A'",-1) 意味:範囲A3:C21の中で、B列の値が『A』のものだけ抽出することが出来る。 他にもクエリの部分に『SELECT』や『WHERE』、『ORDER BY』のようなオプションを追加して、表から任意の条件でデータを抽出することが出来ます。 VLOOKUP関数でも、似たようなことは出来ますが、1つのキーに対して1つの値しか返すことが出来ません。 対して、QUERY関数はというと、条件に対して複数の値を返すことが出来ます!! Excelじゃなくて、わざわざスプレッドシート使ってるのにQUERY関数つかっていない人は、本当に時間がもったいないです。今すぐQUERY関数を使って効率をあげましょう。 ▼過去記事で、QUERY関数の使い方を紹介しました。 [aside]この記事を読めば、QUE
こんにちは、いろんな効率化が大好きなたぬ(@tanuhack)です! 通常、Web上から目当ての情報を取得するときって、目当てのサイトに直接訪れて、情報を手動でGETすると思うんですよね。 今回紹介する『スクレイピング』という技を使えば、なんと、Webサイトに訪れなくても情報を自動でGETすることができます!!! つまり、PCが決められたルールに従って、勝手に情報を集めて来てくれるという訳です。 本格的なスクレイピングは、高度なプログラミングを要しますが、簡単なスクレイピングであれば、スプレッドシートに用意されている『IMPORTXML』という関数だけで実現することができます。 そこで今回は、IMPORTXML関数を使ったスクレイピングの方法と、実例を7個紹介します!
1.セルにはデータ(数値、文字列、日付)のみ格納する データソースとして、グラフや画像、スパークラインを読み込むことは出来ません。 ワークシートの中身は表だけの状態にして、データスタジオに取り込ませましょう。 2.データはA1セルから入力 データはA1セルから入力します。行や列を余計に空けないでください。 スプレッドシートを他人に共有する場合、見やすさを考慮してA列の幅を調整して余白をあえて作っていますが、これはデータソースとしてはあまり適さないやり方です。 スプレッドシートをデータスタジオのデータソースとして作成する場合は、A1セルから入力してください。 3.列内のセルは、すべて同じタイプである必要がある 数値が格納されている列には、すべて数値を格納しなければいけません。 途中で別のデータ(文字列、日付)が混ざるとデータが正しく表示されないことがあります。 4.セルの結合はしない 各列に
こんにちは、色んな効率化が大好きなたぬ(@tanuhack)です! 膨大なシートやデータの中から、「自分が欲しいデータだけをサクッと抽出することが出来たら、分析がもっと捗りそうなのに」と思ったことはありませんか? 持ってきたいデータが1つだけだと、VLOOKUP関数を使えば解決します。 しかし、それが2つ3つと複数だった場合、VLOOKUP関数を使って解決することはできません。 そんなとき役に立つのが、これから紹介するQUERY関数です。 少しだけ難易度高めな関数ですが、覚えておいて損はありません。 使いこなせるようになった暁には、どんなデータでも自分が思うがままに抽出できるようになれることをお約束します。
2020.12.17 Thu スプレッドシートのQUERY関数のGROUP BY句を使用して、グループ集計する方法まとめ
次のページ
このページを最初にブックマークしてみませんか?
『たぬハック|Data is beautiful.』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く