Follow #ソシム販売部Twitterアイコン

     

データサイエンス100本ノック構造化データ加工編ガイドブック

森谷 和弘/鈴木 雅也

定価
3,960円(本体価格 3,600円)
  • 発売日
    2022年4月1日
  • 判型/ページ数
    B5変判/440ページ(全2色刷)
  • ISBN
    978-4-8026-1356-9
  • 備考
    綴込付録「データサイエンス100本ノック(構造化データ加工編)ER図」付き
キーワード:
/ / /

「データサイエンス100本ノック構造化データ加工編」はSQLPythonRの3言語で、ID-POSデータを使い、データサイエンスの基礎教養となる構造化データの加工に重点を置いた、さまざまな分野のスキルセットを身につけるための実践的なトレーニング環境です。トータル22の区分、100個の設問(ノック)に対して、3言語での実装例と解説を提供します。

データサイエンス100本ノック(構造化データ加工編)GitHubリポジトリ
https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess/tree/v2.0

Part 1 データサイエンス100本ノック(構造化データ加工編)とは何か

1.1 データサイエンティストが必要とされる社会背景
1.2 100本ノックの狙い
1.3 100本ノックの問題構成とその意図
1.4 100本ノックの提供コンテンツ
1.5 本書の見方

Part 2 100本ノック環境のセットアップと利用方法

2.1 100 本ノック環境について
2.2 100本ノック環境を動かすために必要なリソースやソフトウェア
2.3 Dockerのインストール
2.4 Docker Desktopの起動
2.5 100本ノック環境の取得
2.6 100本ノック環境の起動

Part 3 データサイエンス100 本ノック(構造化データ加工編)

Chapter 1 列に対する操作
KNOCK 001 全項目指定 全項目を指定行数抽出する
KNOCK 002 列指定 特定の列を抽出する
KNOCK 003 列名変更 指定列の列名を変更する

Chapter 2 行に対する操作
KNOCK 004 単一条件 特定条件に合致する行を抽出(=、>、<)
KNOCK 005 複数条件 複数条件に合致する行を抽出する①
KNOCK 006 複数条件 複数条件に合致する行を抽出する②
KNOCK 007 範囲指定 複数条件に合致する行を抽出する③
KNOCK 008 不一致 特定条件に合致しない行を抽出する(!=)
KNOCK 009 補集合 ド・モルガンの法則で書き換える

Chapter 3 あいまい条件
KNOCK 010 前方一致 データの前方一致で条件指定する
KNOCK 011 後方一致 データの後方一致で条件指定する
KNOCK 012 部分一致 データの部分一致で条件指定する
KNOCK 013 前方一致 正規表現の前方一致で条件指定する
KNOCK 014 後方一致 正規表現の後方一致で条件指定する
KNOCK 015 部分一致 正規表現の部分一致で条件指定する
KNOCK 016 フォーマット一致 特定のデータ書式で条件指定する

Chapter 4 ソート
KNOCK 017 並び替え データを昇順に並べる
KNOCK 018 並び替え データを降順に並べる
KNOCK 019 順位 順位付けする(同一順位あり)
KNOCK 020 順位 順位付けする(同一順位なし)

Chapter 5 集計
KNOCK 021 カウント データの件数をカウントする
KNOCK 022 カウント データのユニーク件数をカウントする
KNOCK 023 合計 対象データの合計値を算出する
KNOCK 024 Max/Min 対象データの最大値を求める
KNOCK 025 Max/Min 対象データの最小値を求める
KNOCK 026 Max/Min 集計結果に対する条件指定で絞り込む
KNOCK 027 統計量 対象データの平均値を求める
KNOCK 028 統計量 対象データの中央値を求める
KNOCK 029 統計量 対象データの最頻値を求める
KNOCK 030 統計量 対象データの分散を求める
KNOCK 031 統計量 対象データの標準偏差を求める
KNOCK 032 統計量 データのパーセンタイル値を求める
KNOCK 033 統計量 統計量に対する条件指定で絞り込む

Chapter 6 副問合せ
KNOCK 034 検索結果からのサブクエリ 検索結果から集計する
KNOCK 035 条件指定でのサブクエリ 検索結果を条件指定に使った副問合せを行う

Chapter 7 結合
KNOCK 036 内部結合 トランザクションとマスタを内部結合する
KNOCK 037 内部結合 マスタ同士を内部結合する
KNOCK 038 左外部結合 左外部結合でデータを残す
KNOCK 039 完全外部結合 完全外部結合ですべてのレコードを残す
KNOCK 040 クロス結合 クロス結合ですべてのレコードの組合せを作成する
KNOCK 041 自己結合による時系列のずらし n件前のデータを結合する
KNOCK 042 自己結合による時系列のずらし 過去n件のデータを結合する

Chapter 8 縦横変換
KNOCK 043 縦から横への変換 縦持ちデータを横持ちデータに変換する
KNOCK 044 横から縦への変換 横持ちデータを縦持ちデータに変換する

Chapter 9 データ変換
KNOCK 045 日付型からの変換 日付型データを文字列データに変換する
KNOCK 046 日付型への変換 文字データを日付型データに変換する
KNOCK 047 日付型への変換 数値データを日付型データに変換する
KNOCK 048 日付型への変換 エポック秒(UNIX時間)を日付型データに変換する
KNOCK 049 日付要素の取り出し 日付データから特定の年だけ取り出す
KNOCK 050 日付要素の取り出し 日付データから特定の月だけ取り出す
KNOCK 051 日付要素の取り出し 日付データから特定の日だけ取り出す
KNOCK 052 二値化 数値データを二値(0と1)データに変換する
KNOCK 053 二値化 文字データを二値(0と1)データに変換する
KNOCK 054 カテゴリ化 テキストラベルからカテゴリデータを作成する
KNOCK 055 カテゴリ化 数値からカテゴリデータを作成する
KNOCK 056 カテゴリ化 件数の少ないカテゴリを適切なカテゴリに寄せる
KNOCK 057 カテゴリ化 カテゴリ同士を組合せた新たなカテゴリを作成する
KNOCK 058 ダミー変数化 ダミー変数(0と1)に変換する(カテゴリ型→ダミー変数)

Chapter 10 数値変換
KNOCK 059  正規化(z-score) 平均0、分散1に変換する
KNOCK 060  正規化(Min-Max normalization) 最小値0、最大値1に変換する
KNOCK 061  対数化  数値データを対数変換する(常用対数)
KNOCK 062  対数化  数値データを対数変換する(自然対数)

Chapter 11 四則演算
KNOCK 063 四則演算 数値を引き算する
KNOCK 064 四則演算 数値を割り算する
KNOCK 065 四則演算 除算結果に対して有効桁数未満を切り捨てる
KNOCK 066 小数の扱い 除算結果に対して有効桁数未満を四捨五入する
KNOCK 067 小数の扱い 除算結果に対して有効桁数未満を切り上げる
KNOCK 068 小数の扱い 乗算結果に対して有効桁数未満を切り捨てる
KNOCK 069 集計結果の演算 集計結果から割合を計算する

Chapter 12 日付型の計算
KNOCK 070 経過日数の計算 2つの日付から経過日数を計算する
KNOCK 071 経過日数の計算 2つの日付から経過月数を計算する
KNOCK 072 経過日数の計算 2つの日付から経過年数を計算する
KNOCK 073 経過時間の計算 2つの日付から経過時間をエポック秒で計算する
KNOCK 074 経過時間の計算 月曜日からの経過日数を計算する

Chapter 13 サンプリング
KNOCK 075 ランダム ランダムサンプリングを行う(単純無作為抽出)
KNOCK 076 層化 カテゴリの割合に応じたサンプリングを行う(層化抽出)

Chapter 14 外れ値・異常値
KNOCK 077 外れ値除外 統計的に外れ値を除外する(3σ外の除外)
KNOCK 078 外れ値除外 統計的に外れ値を除外する(IQR1.5倍)

Chapter 15 欠損値
KNOCK 079 欠損列状況確認 欠損値がある列を確認する
KNOCK 080 欠損レコード削除 欠損値があるレコードを削除する
KNOCK 081 数値補完(平均値) 平均値を用いて欠損値を補完する
KNOCK 082 数値補完(中央値) 中央値を用いて欠損値を補完する
KNOCK 083 数値補完(カテゴリごとの中央値) カテゴリごとに算出した中央値で欠損値を補完する

Chapter 16 除算エラー対応
KNOCK 084 0で代替 分母が欠損値や0の場合でも除算結果データを作成する

Chapter 17 座標データ
KNOCK 085 ジオコード 郵便番号からジオコードに変換する
KNOCK 086 ジオコード 経度緯度から距離を計算する

Chapter 18 名寄せ
KNOCK 087 完全一致 PK以外の項目を利用した名寄せを行う
KNOCK 088 変換データ作成 名寄変換データを作成する

Chapter 19 データ分割
KNOCK 089 レコードデータ ホールドアウト法によるデータの分割を行う
KNOCK 090 時系列データ 時系列データを分割する

Chapter 20 不均衡データ
KNOCK 091 アンダーサンプリング アンダーサンプリングにより不均衡データを調整する

Chapter 21 正規化・非正規化
KNOCK 092 正規化 第三正規形に正規化する
KNOCK 093 非正規化 第三正規形から非正規化する

Chapter 22 ファイル入出力
KNOCK 094 CSV出力(ヘッダ有り、コード変換なし) ヘッダ有無と文字エンコーディングを指定し、CSVファイルを作成する①
KNOCK 095 CSV出力(ヘッダ有り、UTF-8→SJIS) ヘッダ有無と文字エンコーディングを指定し、CSVファイルを作成する②
KNOCK 096 CSV出力(ヘッダ無し、コード変換なし) ヘッダ有無と文字エンコーディングを指定し、CSVファイルを作成する③
KNOCK 097 CSV入力(ヘッダ有り、コード変換なし) ヘッダ有無と文字エンコーディングを指定し、CSVファイルを読み込む①
KNOCK 098 CSV入力(ヘッダ無し、コード変換なし) ヘッダ有無と文字エンコーディングを指定し、CSVファイルを読み込む②
KNOCK 099 TSV出力(ヘッダ有り、コード変換なし) ヘッダ有無と文字エンコーディングを指定し、TSVファイルを作成する
KNOCK 100 TSV入力(ヘッダ有り、コード変換なし) ヘッダ有無と文字エンコーディングを指定し、TSVファイルを読み込む

Appendix Dockerを利用できない場合―CSVから100 本ノック環境を構築する方法

A.1 SQL用のデータ読み込み方法
A.2 Python用のデータ読み込み方法
A.3 R用のデータ読み込み方法

索引

綴込付録「データサイエンス100本ノック(構造化データ加工編)ER図」

お問い合わせ

本書に関するお問い合わせは、下記のボタンをクリックしてお問い合わせフォームよりお問い合わせください。

この書籍を問い合わせる

author執筆者紹介

森谷 和弘

1975年生まれ。
データ解析設計事務所 代表、データアナリティクスラボ株式会社 取締役CTO、データサイエンティスト協会スキル定義委員。2000年に一橋大学大学院 経済学研究科 経済理論・経済統計専攻を修了後、SIerや金融工学ソフトウェア・データサイエンス企業を経て現職。2020年にデータサイエンス100本ノック(構造化データ加工編)を開発し、データサイエンティスト協会からリリース。

鈴木 雅也

1995年生まれ。
2019年に茨城大学大学院 理工学研究科 博士前期課程 情報工学専攻修了後、株式会社ミクシィへ新卒入社。データ分析やデータ分析基盤の構築・運用を経て、現在はWebサービスの開発に従事。フリーランスとしてCloud LaTeXの開発や技術書の執筆にも従事。データサイエンス100本ノック(構造化データ加工編)リリース後の基盤改善やCI構築に寄与。

[ この書籍をシェアする ]

新刊から本を探す

もっと見る

カテゴリから本を探す

シリーズから本を探す

本を探す