Pythonではじめるデータラングリング データの入手、準備、分析、プレゼンテーション

Pythonでデータを扱うための実用的な知識とテクニックを網羅!

このような方におすすめ

データサイエンティスト、脱Excelを図りたいExcelユーザ、データを扱うすべての人
  • 著者Jacqueline Kazil、Katharine Jarmul/嶋田 健志/長尾 高弘 訳
  • 定価4,070 (本体3,700 円+税)
  • B5変 512頁 2017/04発行
  • ISBN978-4-87311-794-2
  • 定価
  • ポイント0
  • 数量

※本体価格は変更される場合があります。
※通常2〜3営業日以内で発送いたします。
※取寄が可能な場合もございますのでお問合せください。

  • 概要
  • 主要目次
  • 詳細目次

タイトルのラングリング(wrangling)とは牛を集めるという意味です。牛を集めてうまく操るカウボーイのように、データを自在に操るためのスキルを身につけた「データラングラー」になろうというコンセプトのもと、データ収集、処理、分析、利用に関わるTIPSとサンプルを豊富に掲載。例題を通じて、効果的なデータの取得、クリーニング、分析、プレゼンテーション方法などを身につけることが可能です。自動化やスケジューリング、大規模データセットの処理、魅力的なストーリー付けの方法なども紹介。脱Excelを図りたいExcelユーザが、スキルアップのために読む本としても最適です。

https://www.ohmsha.co.jp/book/9784873117942/

    
はじめに

1章 Python入門
1.1 なぜ Pythonなのでしょうか
1.2 Pythonを始めましょう
1.2.1 Pythonのバージョンは3.6にします
1.2.2 手持ちのマシンに Pythonをインストールします
1.2.3 Pythonの試運転
1.2.4 pipのインストール
1.2.5 コードエディタのインストール
1.2.6 オプション: IPythonのインストール
1.3 まとめ

2章 Pythonの基礎
2.1 基本データ型
2.1.1 文字列
2.1.2 整数と浮動小数点数
2.2 データコンテナ
2.2.1 変数
2.2.2 リスト
2.2.3 辞書
2.3 さまざまなデータ型ができること
2.3.1 文字列メソッド:文字列ができること
2.3.2 数値メソッド:数値ができること
2.3.3 リストメソッド:リストができること
2.3.4 辞書メソッド:辞書ができること
2.4 役に立つツール: type、dir、help
2.4.1 type
2.4.2 dir
2.4.3 help
2.5 今までの復習
2.6 今までに学んだことの意味
2.7 まとめ

3章 機械が読み出すためのデータ
3.1 CSVデータ
3.1.1 CSVデータのインポート方法
3.1.2 コードのファイルへの保存 .コマンドラインからの実行
3.2 JSONデータ
3.2.1 JSONデータのインポート方法
3.3 XMLデータ
3.3.1 XMLデータのインポート方法
3.4 まとめ

4章 Excelファイルの操作
4.1 Pythonパッケージのインストール
4.2 Excelファイルのパース
4.3 パースの実際
4.4 まとめ

5章 PDFとPythonによる問題解決
5.1 PDFは使わないで!
5.2 プログラムによる PDFのパース
5.2.1 slateを使ったファイルのオープンと読み出し
5.2.2 PDFからテキストへの変換
5.3 pdfminerを使った PDFのパース
5.4 問題解決のための方法
5.4.1 実践:テーブル抽出で使える別のライブラリのテスト
5.4.2 実践:データの手作業によるクリーンアップ
5.4.3 実践:ほかのツール
5.5 一般的ではないファイルの種類
5.6 まとめ

6章 データの獲得と格納
6.1 すべてのデータが同じように作られているわけではないこと
6.2 事実確認
6.3 読みやすさ、クリーンさ、持続性
6.4 データをどこで探すかということ
6.4.1 電話の使い方
6.4.2 アメリカ連邦政府のデータ
6.4.3 世界中の国、都市の情報公開
6.4.4 各種機関、 NGO(非政府組織)のデータ
6.4.5 教育と大学のデータ
6.4.6 医療および科学データ
6.4.7 クラウドソーシングデータと API
6.5 ケーススタディ:データ収集の例
6.5.1 エボラ
6.5.2 鉄道の安全性
6.5.3 サッカー選手の収入
6.5.4 児童労働
6.6 データの保存:いつ、なぜ、どのように
6.7 データベース:簡単な紹介
6.7.1 リレーショナルデータベース: MySQLと PostgreSQL
6.7.2 非リレーショナルデータベース: NoSQL
6.7.3 Pythonによるローカルデータベースの設定
6.8 単純なファイルを使うべきとき
6.8.1 クラウドストレージと Python
6.8.2 ローカルストレージと Python
6.9 その他のデータストレージ
6.10 まとめ

7章 データのクリーンアップ:調査、マッチング、整形
7.1 データをクリーンアップする理由
7.2 データクリーンアップの基礎
7.2.1 データクリーンアップのための値の確認
7.2.2 データの整形
7.2.3 外れ値や不良データの検出
7.2.4 重複の検出
7.2.5 ファジーマッチング
7.2.6 正規表現マッチング
7.2.7 重複するレコードの処理方法
7.3 まとめ

8章 データのクリーンアップ:標準化とスクリプト化
8.1 データの正規化と標準化
8.2 データの保存
8.3 プロジェクトにとって適切なデータクリーンアップ方法の決め方
8.4 クリーンアップ処理のスクリプト化
8.5 新しいデータによるテスト
8.6 まとめ

9章 データの探究と分析
9.1 データの探究
9.1.1 データのインポート
9.1.2 テーブル関数による探究
9.1.3 多くのデータセットの結合
9.1.4 相関関係の検出
9.1.5 外れ値の検出
9.1.6 グループの作成
9.1.7 さらなる探究
9.2 データの分析
9.2.1 データの分割と焦点の絞り込み
9.2.2 データは何を語っているのか
9.2.3 結論の描き方
9.2.4 結論の記録方法
9.3 まとめ

10章 データのプレゼンテーション
10.1 ストーリーテリングの落とし穴
10.1.1 どのようにストーリーを語るかについて
10.1.2 聞き手を知ること
10.2 データのビジュアライズ
10.2.1 グラフ
10.2.2 時間関連データ
10.2.3 地図
10.2.4 対話的プレゼンテーション
10.2.5 文章
10.2.6 イメージ、ビデオ、イラスト
10.3 プレゼンテーションツール
10.4 データの公開
10.4.1 既存サイトの利用
10.4.2 オープンソースプラットフォーム:新しいサイトの開設
10.4.3 Jupyter(元の IPython Notebooks)
10.5 まとめ

11章 ウェブスクレイピング:ウェブからのデータの獲得と保存
11.1 何をどのようにスクレイピングするかについて
11.2 ウェブページの分析
11.2.1 Inspection:マークアップの構造
11.2.2 Network/Timeline:ページがどのようにロードされるか
11.2.3 Console:JavaScriptの操作
11.2.4 ページの深い分析
11.3 ページの取得:インターネットにリクエストを送る方法
11.4 Beautiful Soupによるウェブページのパース
11.5 LXMLによるウェブページのパース
11.5.1 XPathを使う理由
11.6 まとめ

12章 高度なウェブスクレイピング:スクリーンスクレイパーとスパイダー
12.1 ブラウザベースのパース
12.1.1 Seleniumによる画面の読み出し
12.1.2 Ghost.pyによる画面の読み出し
12.2 ウェブのスパイダリング
12.2.1 Scrapyによるスパイダーの構築
12.2.2 Scrapyによるウェブサイト全体のクロール
12.3  ネットワーク:インターネットの仕組みとそれによってスクリプトに問題が起こる理由
12.4  変化するウェブ(またはスクリプトが動かなくなる理由)
12.5  注意すべきこと
12.6  まとめ

13章 API
13.1  APIの特徴
13.1.1 REST APIとストリーミング API
13.1.2 容量制限
13.1.3 データ層
13.1.4 APIキーとトークン
13.2  Twitterの REST APIからの単純なデータの取得
13.3  Twitterの REST APIからの高度なデータ収集
13.4  Twitterのストリーミング APIからの高度なデータ収集
13.5  まとめ

14章 自動化とスケーリング
14.1  自動化の理由
14.2  自動化のためのステップ
14.3  起こり得る問題
14.4  自動化スクリプトを実行すべき場所
14.5  自動化のためのスペシャルツール
14.5.1 ローカルファイル、 argv、設定ファイルの使い方
14.5.2 データ処理のためのクラウドの使い方
14.5.3 並列処理の使い方
14.5.4 分散処理の使い方
14.6  単純な自動化
14.6.1 cronジョブ
14.6.2 ウェブインターフェイス
14.6.3 Jupyterノートブック
14.7  大規模な自動化
14.7.1 Celery:キューベースの自動化
14.7.2 Ansible:運用の自動化
14.8 自動化のモニタリング
14.8.1 Pythonのロギング
14.8.2 自動メッセージの追加
14.8.3 アップロード、その他の報告の方法
14.8.4 Logging and Monitoring as a Service
14.9 絶対安全なシステムはない
14.10 まとめ

15章 終わりに
15.1 データラングラーの義務
15.2 データラングリングを越えて
15.2.1 より優秀なデータアナリストになるために
15.2.2 より優秀な開発者になるために
15.2.3 より優秀なビジュアルストーリーテラーになるために
15.2.4 より優秀なシステムアーキテクトになるために
15.3 ここからどこに進むべきか

付録A 本書で触れた言語との比較
A.1 C、C++、Javaと Python
A.2 R、MATLABと Python
A.3 HTMLとPython
A.4 JavaScriptとPython
A.5 Node.jsと Python
A.6 Ruby、Ruby on Railsと Python

付録B 初心者向けのオンライン教材とオフライングループ
B.1 オンライン教材
B.2 オフライングループ

付録C コマンドライン入門
C.1 bash
C.1.1 ファイルシステム内の移動
C.1.2 ファイルの変更
C.1.3 ファイルの実行
C.1.4 コマンドラインによる検索
C.1.5 参考資料
C.2 Windowsの CMD/PowerShell
C.2.1 ファイルシステム内での移動
C.2.2 ファイルの変更
C.2.3 ファイルの実行
C.2.4 コマンドラインによる検索
C.2.5 参考資料

付録D 高度な構成の Pythonの設定
D.1 ステップ1:GCCのインストール
D.2 ステップ2:(Macのみ) Homebrewのインストール
D.3 ステップ3:(Macのみ) Homebrewの位置の PATHへの追加
D.4 ステップ4:Pythonのインストール
D.5 ステップ5:venv
D.6 ステップ6:新しいディレクトリの設定
D.7 新しい環境についての練習( Windows、Mac、Linux)
D.8 高度な設定のまとめ

付録E Pythonのなるほど集
E.1 空白万歳
E.2 恐ろしい GIL
E.3 =、==、isの違いと copyを使うべきとき
E.4 関数のデフォルト引数
E.5 Pythonのスコープと組み込み関数、メソッド:変数名の重要性
E.6 オブジェクトの定義と変更
E.7 イミュータブルなオブジェクトの変更
E.8 型チェック
E.9 複数の例外のキャッチ
E.10 デバッグの力

付録F IPythonのヒント
F.1 IPythonを使う理由
F.2 IPythonをインストールして動かしてみましょう
F.3 マジックコマンド
F.4 最後に:より単純なターミナル

付録G AWSの使い方
G.1 AWSサーバーの立ち上げ
G.1.1 AWSステップ1:Amazonマシンイメージ( AMI)の選択
G.1.2 AWSステップ2:インスタンスタイプの選択
G.1.3 AWSステップ7:インスタンス作成の確認
G.1.4 AWSの最後の質問:既存のキーペアを選択するか、新しいキーペアを作成します
G.2 AWSサーバーへのログイン
G.2.1 インスタンスのパブリックDNS名の取得
G.2.2 プライベートキーの準備
G.2.3 サーバーへのログイン
G.2.4 まとめ

索引