Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

Book description

NumPy、SciPy、pandas、Matplotlib、Jupyterをはじめ、高機能で使いやすい数学・科学計算用ライブラリが充実しているPythonは、科学計算、統計解析、機械学習のみならず、金融や経済分野でも広く利用されています。本書はPythonの代表的なデータ分析ツール、pandasの開発者Wes McKinneyによる、データ分析を行うための基本を網羅しています。すべてのサンプルコードはダウンロード可能で、Jupyter Notebookで対話的に試し、実際に手を動かしながら知識を確実なものにすることが可能です。Python 3に対応した待望の改訂版です。

Table of contents

  1. 目次
  2. 訳者まえがき (1/3)
  3. 訳者まえがき (2/3)
  4. 訳者まえがき (3/3)
  5. まえがき (1/3)
  6. まえがき (2/3)
  7. まえがき (3/3)
  8. 1章 はじめに
    1. 1.1 この本で説明する内容
      1. 1.1.1 どういうデータを扱うのか
    2. 1.2 なぜPythonをデータ分析に使うのか
      1. 1.2.1 「糊(グルー)」としてのPython
      2. 1.2.2 「2つの言語」問題を解決する
      3. 1.2.3 Pythonを使うべきではないケース
    3. 1.3 必須のPythonライブラリ
      1. 1.3.1 NumPy
      2. 1.3.2 pandas
      3. 1.3.3 Matplotlib
      4. 1.3.4 IPythonとJupyter
      5. 1.3.5 SciPy
      6. 1.3.6 scikit-learn
      7. 1.3.7 statsmodels
    4. 1.4 インストールとセットアップ
      1. 1.4.1 Windows
      2. 1.4.2 Apple(macOS)
      3. 1.4.3 GNU/Linux
      4. 1.4.4 Pythonパッケージのインストールとアップデート
      5. 1.4.5 Python 2とPython 3
      6. 1.4.6 統合開発環境(IDE)とテキストエディタ
    5. 1.5 コミュニティとカンファレンス
    6. 1.6 この本の案内
      1. 1.6.1 コード例
      2. 1.6.2 例で使用しているデータ
      3. 1.6.3 インポートにおける慣習
      4. 1.6.4 専門用語(ジャーゴン、Jargon)
  9. 2章 Pythonの基礎、IPythonとJupyter Notebook
    1. 2.1 Pythonインタプリタ
    2. 2.2 IPythonの基礎
      1. 2.2.1 IPythonシェルの起動
      2. 2.2.2 Jupyter Notebookの実行
      3. 2.2.3 タブ補完
      4. 2.2.4 イントロスペクション
      5. 2.2.5 %runコマンド
      6. 2.2.6 クリップボード経由の実行
      7. 2.2.7 IPythonのキーボードショートカット
      8. 2.2.8 マジックコマンド
      9. 2.2.9 Matplotlibとの連携
    3. 2.3 Pythonの基礎
      1. 2.3.1 セマンティクス
      2. 2.3.2 スカラー型 (1/2)
      3. 2.3.2 スカラー型 (2/2)
      4. 2.3.3 制御フロー (1/2)
      5. 2.3.3 制御フロー (2/2)
  10. 3章 Python組み込みのデータ構造と関数、ファイルの扱い
    1. 3.1 データ構造とシーケンス
      1. 3.1.1 タプル
      2. 3.1.2 リスト
      3. 3.1.3 組み込みのシーケンス関数
      4. 3.1.4 ディクショナリ
      5. 3.1.5 セット
      6. 3.1.6 リスト、セット、ディクショナリの内包表記
    2. 3.2 関数
      1. 3.2.1 名前空間、スコープ、ローカル関数
      2. 3.2.2 複数の値を戻す
      3. 3.2.3 関数はオブジェクトである
      4. 3.2.4 無名(ラムダ)関数
      5. 3.2.5 カリー化:引数の部分適用
      6. 3.2.6 ジェネレータ
      7. 3.2.7 エラーと例外の処理
    3. 3.3 ファイルとオペレーティングシステム
      1. 3.3.1 ファイルにおけるバイトとUnicode
    4. 3.4 まとめ
  11. 4章 NumPyの基礎: 配列とベクトル演算
    1. 4.1 NumPy ndarray:多次元配列オブジェクト
      1. 4.1.1 ndarrayの生成
      2. 4.1.2 ndarrayのデータ型
      3. 4.1.3 ndarrayの算術演算
      4. 4.1.4 インデックス参照とスライシングの基礎 (1/2)
      5. 4.1.4 インデックス参照とスライシングの基礎 (2/2)
      6. 4.1.5 ブールインデックス参照
      7. 4.1.6 ファンシーインデックス参照
      8. 4.1.7 転置行列、行と列の入れ替え
    2. 4.2 ユニバーサル関数:すべての配列要素への関数適用
    3. 4.3 ndarrayによる配列指向プログラミング
      1. 4.3.1 条件制御のndarrayでの表現
      2. 4.3.2 数学関数、統計関数
      3. 4.3.3 真偽値配列関数
      4. 4.3.4 ソート
      5. 4.3.5 集合関数:uniqueなど
    4. 4.4 ndarrayのファイル入出力
    5. 4.5 行列計算
    6. 4.6 擬似乱数生成
    7. 4.7 例:ランダムウォーク
      1. 4.7.1 多重ランダムウォーク
    8. 4.8 まとめ
  12. 5章 pandas入門
    1. 5.1 pandasのデータ構造
      1. 5.1.1 シリーズ(Series)
      2. 5.1.2 データフレーム(DataFrame) (1/2)
      3. 5.1.2 データフレーム(DataFrame) (2/2)
      4. 5.1.3 インデックスオブジェクト
    2. 5.2 pandasの重要な機能
      1. 5.2.1 再インデックス付け
      2. 5.2.2 軸から要素を削除する
      3. 5.2.3 インデックス参照、選択、フィルタリング
      4. 5.2.4 整数のインデックス
      5. 5.2.5 算術とデータの整形 (1/2)
      6. 5.2.5 算術とデータの整形 (2/2)
      7. 5.2.6 関数の適用とマッピング
      8. 5.2.7 ソートとランク
      9. 5.2.8 重複したラベルを持つ軸のインデックス
    3. 5.3 要約統計量の集計と計算
      1. 5.3.1 相関と共分散
      2. 5.3.2 一意な値、頻度の確認、所属の確認
    4. 5.4 まとめ
  13. 6章 データの読み込み、 書き出しとファイル形式
    1. 6.1 テキスト形式のデータの読み書き
      1. 6.1.1 テキストファイルを少しずつ読み込む
      2. 6.1.2 テキスト形式でのデータの書き出し
      3. 6.1.3 区切り文字で区切られた形式を操作する
      4. 6.1.4 JSONデータ
      5. 6.1.5 XMLとHTML:ウェブスクレイピング
    2. 6.2 バイナリデータ形式
      1. 6.2.1 HDF5形式の使用
      2. 6.2.2 Microsoft Excelファイルの読み込み
    3. 6.3 Web APIを用いたデータの取得
    4. 6.4 データベースからのデータの取得
    5. 6.5 まとめ
  14. 7章 データのクリーニングと前処理
    1. 7.1 欠損値の取り扱い
      1. 7.1.1 欠損値を削除する
      2. 7.1.2 欠損値を穴埋めする
    2. 7.2 データの変形
      1. 7.2.1 重複の除去
      2. 7.2.2 関数やマッピングを用いたデータの変換
      3. 7.2.3 値の置き換え
      4. 7.2.4 軸のインデックスの名前を変更する
      5. 7.2.5 離散化とビニング
      6. 7.2.6 外れ値の検出と除去
      7. 7.2.7 順列(ランダムな並べ替え)やランダムサンプリング
      8. 7.2.8 標識変数やダミー変数の計算
    3. 7.3 文字列操作
      1. 7.3.1 文字列オブジェクトのメソッド
      2. 7.3.2 正規表現
      3. 7.3.3 pandasにおける文字列関数のベクトル化
    4. 7.4 まとめ
  15. 8章 データラングリング: 連結、結合、変形
    1. 8.1 階層型インデックス
      1. 8.1.1 階層の順序変更やソート
      2. 8.1.2 階層ごとの要約統計量
      3. 8.1.3 データフレームの列をインデックスに使う
    2. 8.2 データセットの結合とマージ
      1. 8.2.1 データフレームをデータベース風に結合する
      2. 8.2.2 インデックスによるマージ
      3. 8.2.3 軸に沿った連結 (1/2)
      4. 8.2.3 軸に沿った連結 (2/2)
      5. 8.2.4 重複のあるデータの結合
    3. 8.3 変形とピボット操作
      1. 8.3.1 階層型インデックスによる変形
      2. 8.3.2 「縦持ち」フォーマットから「横持ち」フォーマットへのピボット
      3. 8.3.3 「横持ち」フォーマットから「縦持ち」フォーマットへのピボット
    4. 8.4 まとめ
  16. 9章 プロットと可視化
    1. 9.1 Matplotlib APIの概要
      1. 9.1.1 図とサブプロット
      2. 9.1.2 色、マーカー、線種
      3. 9.1.3 目盛り、ラベル、凡例
      4. 9.1.4 サブプロットへの注釈や描画
      5. 9.1.5 プロットのファイルへの保存
      6. 9.1.6 Matplotlibの設定
    2. 9.2 pandasとseabornのプロット関数
      1. 9.2.1 折れ線グラフ
      2. 9.2.2 棒グラフ (1/2)
      3. 9.2.2 棒グラフ (2/2)
      4. 9.2.3 ヒストグラムと密度プロット
      5. 9.2.4 散布図
      6. 9.2.5 ファセットグリッドとカテゴリ型データ
    3. 9.3 その他のPython用可視化ツール
    4. 9.4 まとめ
  17. 10章 データの集約とグループ演算
    1. 10.1 GroupByの仕組み
      1. 10.1.1 グループをまたいだ繰り返し
      2. 10.1.2 列や列の集合の選択
      3. 10.1.3 ディクショナリやシリーズのグループ化
      4. 10.1.4 関数を使ったグループ化
      5. 10.1.5 インデックス階層によるグループ化
    2. 10.2 データの集約
      1. 10.2.1 列に複数の関数を適用する
      2. 10.2.2 集約されたデータを行インデックスなしで戻す
    3. 10.3 applyメソッド:一般的な分離−適用−結合の方法
      1. 10.3.1 グループキーの抑制
      2. 10.3.2 分位点とビン分析
      3. 10.3.3 例:グループ固有の値で欠損値を埋める
      4. 10.3.4 例:ランダムサンプリングと順列
      5. 10.3.5 例:グループの加重平均と相関
      6. 10.3.6 例:グループ指向の線形回帰
    4. 10.4 ピボットテーブルとクロス集計
      1. 10.4.1 クロス集計:crosstabメソッド
    5. 10.5 まとめ
  18. 11章 時系列データ
    1. 11.1 日付、時間のデータ型とツール
      1. 11.1.1 文字列とdatetimeの変換
    2. 11.2 時系列の基本
      1. 11.2.1 インデックス参照、データの選択、サブセットの抽出
      2. 11.2.2 重複したインデックスを持つ時系列
    3. 11.3 日付範囲、頻度、シフト
      1. 11.3.1 日付範囲の生成
      2. 11.3.2 頻度と日付オフセット
      3. 11.3.3 データの前方と後方へのシフト
    4. 11.4 タイムゾーンを扱う
      1. 11.4.1 タイムゾーンのローカライゼーションと変換
      2. 11.4.2 タイムゾーンを考慮したタイムスタンプオブジェクト
      3. 11.4.3 別のタイムゾーンとの演算
    5. 11.5 期間を使った算術演算
      1. 11.5.1 期間頻度の変換
      2. 11.5.2 四半期の頻度
      3. 11.5.3 タイムスタンプから期間への変換(とその逆)
      4. 11.5.4 配列からPeriodIndexを作成する
    6. 11.6 再サンプリングと頻度変換
      1. 11.6.1 ダウンサンプリング
      2. 11.6.2 アップサンプリングと穴埋め
      3. 11.6.3 期間で再サンプリングする
    7. 11.7 移動する窓関数
      1. 11.7.1 指数加重関数
      2. 11.7.2 2つ値がある場合の移動する窓関数
      3. 11.7.3 ユーザ定義の移動する窓関数
    8. 11.8 まとめ
  19. 12章 pandas:応用編
    1. 12.1 カテゴリ型データ
      1. 12.1.1 開発の背景と動機
      2. 12.1.2 pandasにおけるカテゴリ型
      3. 12.1.3 カテゴリを用いた計算
      4. 12.1.4 カテゴリメソッド
    2. 12.2 グループ演算の使い方:応用編
      1. 12.2.1 グループの変換とGroupByの「分解」
      2. 12.2.2 時系列データの再サンプリングを伴うグループ化
    3. 12.3 メソッドチェーンを行うためのテクニック
      1. 12.3.1 pipeメソッド
    4. 12.4 まとめ
  20. 13章 Pythonにおける モデリングライブラリ入門
    1. 13.1 pandasとモデルとのやり取りを行う
    2. 13.2 Patsyを使ったモデルの記述
      1. 13.2.1 Patsy式におけるデータ変換
      2. 13.2.2 カテゴリ型データとPatsy
    3. 13.3 statsmodels入門
      1. 13.3.1 線形モデルの推定
      2. 13.3.2 時系列モデルの推定
    4. 13.4 scikit-learn入門
    5. 13.5 この後の学びのために
  21. 14章 データ分析の実例
    1. 14.1 短縮URL Bitlyにおける1.usa.govへの変換データ
      1. 14.1.1 Python標準機能でのタイムゾーン情報の集計
      2. 14.1.2 pandasを使用したタイムゾーン情報の集計 (1/2)
      3. 14.1.2 pandasを使用したタイムゾーン情報の集計 (2/2)
    2. 14.2 MovieLens 1M(映画評価データ)
      1. 14.2.1 評価の分かれた映画の抽出
    3. 14.3 アメリカの赤ちゃんに名付けられた 名前リスト(1880-2010) (1/2)
    4. 14.3 アメリカの赤ちゃんに名付けられた 名前リスト(1880-2010) (2/2)
      1. 14.3.1 名付けの傾向分析 (1/2)
      2. 14.3.1 名付けの傾向分析 (2/2)
    5. 14.4 アメリカ合衆国農務省の食糧データベース (1/2)
    6. 14.4 アメリカ合衆国農務省の食糧データベース (2/2)
    7. 14.5 2012年度連邦選挙委員会データベース
      1. 14.5.1 職業別・雇用者別の寄付の分析
      2. 14.5.2 寄付金額ごとの分析
      3. 14.5.3 州ごとの寄付の分析
    8. 14.6 まとめ
  22. 付録A NumPy:応用編
    1. A.1 ndarrayオブジェクトの内部構造
      1. A.1.1 NumPy dtypeの階層構造
    2. A.2 配列操作:応用編
      1. A.2.1 配列の形状の再成形
      2. A.2.2 C型の順序とFortran型の順序
      3. A.2.3 配列の結合と分割
      4. A.2.4 要素の繰り返し:tileとrepeat
      5. A.2.5 ファンシーインデックス参照の別法:takeとput
    3. A.3 ブロードキャスト
      1. A.3.1 他の軸へのブロードキャスト
      2. A.3.2 ブロードキャストによる配列への値の設定
    4. A.4 ufuncの使い方:応用編
      1. A.4.1 ufuncのインスタンスメソッド
      2. A.4.2 Pythonで新しいufuncを書く方法
    5. A.5 構造化配列とレコード配列
      1. A.5.1 ネストした構造を持つdtypeと多次元フィールド
      2. A.5.2 構造化配列を使うべき理由
    6. A.6 ソートについてさらに詳しく
      1. A.6.1 間接ソート:argsortとlexsort
      2. A.6.2 使用可能な他のソートアルゴリズム
      3. A.6.3 配列の一部分をソートする
      4. A.6.4 numpy.searchsorted:ソート済みの配列内で要素を探す
    7. A.7 Numbaを用いて高速なNumPy関数を書く
      1. A.7.1 独自定義のnumpy.ufuncオブジェクトをNumbaを用いて 作成する
    8. A.8 配列の入出力:応用編
      1. A.8.1 メモリマップファイル
      2. A.8.2 HDF5やその他の配列保存方法
    9. A.9 パフォーマンス改善のための豆知識
      1. A.9.1 連続したメモリの重要性
  23. 付録B IPythonシステム上級編
    1. B.1 コマンド履歴
      1. B.1.1 コマンド履歴の検索とその再利用
      2. B.1.2 入出力変数
    2. B.2 オペレーティングシステムとの連携
      1. B.2.1 シェルコマンドとエイリアス(別名定義)
      2. B.2.2 ディレクトリブックマークシステム
    3. B.3 ソフトウェア開発ツール
      1. B.3.1 対話的デバッガ
      2. B.3.2 処理時間の計測:%timeと%timeit
      3. B.3.3 プロファイリングの基礎:%prunと%run -p
      4. B.3.4 行ごとのプロファイリング
    4. B.4 IPythonでの生産的コード開発に向けたヒント
      1. B.4.1 依存関係を考慮したモジュールの再読み込み
      2. B.4.2 コード設計のヒント
    5. B.5 高度なIPython機能
      1. B.5.1 自前のクラスのIPythonへの親和性を高める技法
      2. B.5.2 IPythonプロファイルと構成機能
    6. B.6 まとめ
  24. 索引 (1/5)
  25. 索引 (2/5)
  26. 索引 (3/5)
  27. 索引 (4/5)
  28. 索引 (5/5)

Product information

  • Title: Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理
  • Author(s): Wes McKinney, 瀬戸山 雅人, 小林 儀匡, 滝口 開資
  • Release date: July 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118451

You might also like

book

詳説 イーサネット 第2版

by Charles E. Spurgeon, Joann Zimmerman, 三浦 史光, 豊沢 聡

イーサネット技術についての解説書。本書では、ファーストイーサネットやギガビットイーサネットなどの従来技術だけでなく、10ギガ、40ギガ、100ギガビットなど最新のイーサネット仕様を詳しく解説します。また、全二重イーサネット、オートネゴシエーション、Power over Ethernet、Energy Efficient Ethernet、構造化ケーブリングシステム、スイッチを用いたネットワークの設計、ネットワーク管理、ネットワークのトラブルシューティングのテクニックなども解説します。ネットワークの設計、監視、保守、障害時対応までを網羅し、信頼性の高いネットワークの構築を支援します。

book

SQLクックブック 第2版 ―データベースエキスパート、データサイエンティストのための実践レシピ集

by Anthony Molinaro, Robert de Graaf, 嶋田 健志, 木下 哲也

トップデータサイエンティストと統計のエキスパートによる、実践に役立つSQLのレシピ集。第1版を全面的にアップデートし、さらにデータサイエンティスト向けのレシピを追加、補強しています。巨大医療コングロマリットで長年データ分析とデータベースの特性評価を行っている著者たちの経験に基づき、SQLを使う上でよく遭遇する問題と、広く使われているMySQL、Oracle、PostgreSQL、SQL Server、Db2による解決策を提示。各データベースの持つ長所と短所、特性などもわかるため、データベースの導入や変更を検討する際の資料としての利用にも役立ちます。逆引きリファレンスとして常に手元に置いておきたい一冊です。

book

仕事ではじめる機械学習 第2版

by 有賀 康顕, 中山 心太, 西林 孝

2018年の発行以来、多くの読者に支持された書籍を全面改訂! 不確実性の高い機械学習プロジェクトについて、「仕事で使う」という観点から整理するコンセプトはそのままに、初版の発行後に登場した概念や課題を取り上げます。「機械学習でいい感じにしてくれ」と突然上司に言われたとき、本書で学んだことが読者の力になるはずです。本書で得た知識は読者が「いま」困っている問題を解決する助けとなるでしょう。 第2版では、機械学習システムの開発と運用の統合する「ML Ops」、機械学習モデルを解釈し、その妥当性や根拠を明らかにする「機械学習モデルの検証」、ユーザーの行動を学習しながら予測を進める「バンディットアルゴリズム」、意思決定における予測システムの役割や意思決定のデザインを扱う「オンライン広告での機械学習」といった新章を追加しています。

book

マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門

by Mokhtar Ebrahim, Andrew Mallett, 萬谷 暢崇, 原 隆文

Linuxシェルスクリプトの解説書。その中でも特にbashのシェルスクリプティングに焦点を当てています。シェルスクリプトの書き方、デバッグ方法、bashプログラミングの基本といったシェルスクリプティングの基礎から、sedやAWKなど各種ツールとの連携といった実践的な応用までを体系的に解説します。WebサーバーなどのLinuxシステムの管理を任されるようになった初級の管理者にも、もっと高度で実践的なテクニックを必要としている中級の管理者や開発者にも広く役に立つ内容です。