トップページデータ処理(目次ページ)

データ処理(目次ページ)

オープンデータ,データサイエンス,データの分析,データの管理,データベースシステム,R システム,データを扱うためのパソコン類のセットアップ.

考えていること:私は,データベースについて専攻している大学教授です. 授業などで,データベースについて教える機会が多く,詳しさ,分野の違うさまざまな教材を自分で準備するようになりました. そして,データベース研究を行うとき,実データを見る,データを分析する,データを活用するというさまざまな活動を行います.そのときの経験をできる限り残しておき,分かち合いたいと思うようになりました.

このページは目次ページである.

Google Colaboratory の使い方,Windows のセットアップ,Ubuntu のセットアップ

Google Colaboratory の使い方

Google Colaboratory は,オンラインの Python の開発環境.使い方などは, 別ページで説明している.

サイト内の主な Windows 関連ページ

サイト内の主な Ubuntu 関連ページ

項目目次

それぞれのリンクをクリックすることで,各項目の目次ページ等にジャンプする.

データ応用,種々のデータベース

  1. データ処理とデータ活用
  2. PyMOL のインストールと基本機能

3. 種々のデータ(日時,時系列,ビデオ)の扱い

  1. 日時データの処理
  2. ビデオ,連番画像の処理
  3. RNA データ

4. データの分析,データを裏付けとする結論

  1. 主成分分析,次元削減
  2. クラスタリング

5. CSV ファイル,Excel ファイル,JSON ファイル,データ連携

  1. CSV ファイル,Excel ファイル,JSON ファイル
  2. SQL の活用,リレーショナルデータベースのデータ連携

【サイト内の関連ページ】

  1. オペレーションズリサーチ(Excel を使用)(全14回): 別ページで説明している.

7. オープンデータ,オンラインサイト

  1. オープンデータのダウンロード
  2. オンラインサイトの紹介
  3. 商用データなど

8. 種々のオープンデータへのリンク

  1. 種々のオープンデータへのリンク

詳細目次

データ活用分野(データの管理,データの処理,データの活用)

リレーショナルデータベース,SQL

データベース応用,種々のデータベース

データ処理とデータ活用

目次ページ:データ処理とデータ活用

  1. リレーショナルデータベース [ワード], [PDF]
  2. SQL 問い合わせ [ワード], [PDF]
  3. SQL による結合 [ワード],
  4. Python のデータフレーム,集計・集約,ソート [ワード],
  5. Web でのリクエスト URL による処理の振り分け(Python の bottle を使用)[ワード],
  6. オブジェクト指向データベース(1) [ワード],
  7. オブジェクト指向データベース(2) [ワード],
  8. クラスタリング [ワード],
  9. ガウス分布,クラスタリング [ワード],
  10. 分類 [ワード],
  11. 種々のグラフ(Python の pandas を使用) [ワード],

PyMOL のインストールと基本機能

3. 種々のデータ(日時,時系列,ビデオ)の扱い

3.1 日時データの処理

目次ページ: 日時データの処理

3.3 ビデオデータの処理

目次ページ: ビデオ,連番画像の処理

3.4. RNA データ

目次ページ: RNA データ

4. データの分析,データを裏付けとする結論

4.1 クラスタリング

目次ページ: クラスタリング

5. CSV ファイル,Excel ファイル,JSON ファイル,データ連携

5.1 CSV ファイル,Excel ファイル,JSON ファイル

目次ページ: CSV ファイル,Excel ファイル,JSON ファイル

【CSV ファイル,Excel ファイル】

【JSON ファイル】

【サイト内の関連ページ】

5.2 SQL の活用,リレーショナルデータベースのデータ連携

CSV ファイルに対する SQL の実行

CSV ファイルのリレーショナルデータベースへのインポート

CSV ファイルでの SQL 実行での性能確認

並行実行での性能確認

8. オープンデータ,オンラインサイト

8.1 オープンデータのダウンロード

利用条件,出典表示の方法などは利用者で確認すること.

  1. Python の seaborn, scikits.learn のデータセット
  2. Python の scikits.learn でダウンロードできる LFW 顔画像データセット
  3. データフレーム,小画像
  4. 数値標高モデル
  5. 衛星画像
  6. モーションデータ
  7. 手書き文字
  8. 顔画像
  9. Wikipedia
  10. ipadic
  11. 政府統計 e-Stat
  12. 外国為替データ(時系列データ)
  13. 郵便番号
  14. KITTY オドメトリデータセット
  15. Pascal VOC 2012 Example Segmentations(書きかけ)
    セグメンテーション済みのカラー画像,セグメンテーションのラベルは20種類.アノテーションも?(調査中)

8.2 オンラインサイトの紹介

8.3 商用データなど

※ 特定の商用製品等を推奨、広報するものではない.使用感など評価を行うものでもない.

9. 種々のオープンデータへのリンク

利用条件,出典表示の方法などは利用者で確認すること.

数値,ラベル等

画像 + ラベル

画像 + セグメンテーション結果

画像

顔画像

特定種類の画像

動作

CSV ファイル,エクセルファイル

地図

ビデオ

自然言語

ネットワーク

Blender シーン

ゲノム

リファレンスゲノム配列 GRCh38 NCBI のページ: https://www.ncbi.nlm.nih.gov/assembly/GCF_000001405.26/

その他

その他,オープンデータ関係

Detector : Dlib, SSD Mobilenet-v2

Recognition: VGG2 VGG2-Resnet

Model: Inception ResNet2

Face Datasets: VGGFace2, MS-Celeb-1M, CASIA WebFace, Labeled Faces in the Wild

[1] VGG Face : http://www.robots.ox.ac.uk/~vgg/software/vgg_face/

[2] VGG Face in TensorFlow : https://github.com/ZZUTK/TensorFlow-VGG-face

[3] DLib : https://github.com/davisking/dlib

[4] Dlib Guide Blog : https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/

Computer Vision Group, Freiburg: https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html NYU Depth Dataset V2, https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html

以下、書きかけ

  
#!/bin/bash

cat >/tmp/a.$$.sql <<-SQL
drop table KENALL; 
drop table JIGYOSYO; 
SQL
cat /tmp/a.$$.sql | sqlite3 /tmp/mydb01
#
cat >/tmp/a.$$.sql <<-SQL

この Web ページの配下にある資料の維持方針

## -*- coding: utf-8 -*- import win32com.client as win32 #COMを利用して、Excelに接続 xlApp = win32.Dispatch("Excel.Application")e #Excelを開く wb = xlApp.Workbooks.Open("E:/testFile.xlsx") #Sheet取得 #番号またはSheet名 sheet = wb.Worksheets(1) #Cell取得 cell = sheet.Cells(1,1) #Cellに数字を入れる cell.Value = 10 #関数を入れる sheet.Range("A11").Formula = "=SUM(A1:A10)" #シート名を変更 sheet.Name = "TEST NAME" #セーブして閉じる wb.Save() wb.Close()

CSV データ合成

  1. 前準備として,domoritz/random-csv のインストールとテスト実行

    コマンドプロンプト管理者として実行し,次のコマンドを実行.

    mkdir c:\pytools
    cd c:\pytools
    git clone https://github.com/domoritz/random-csv
    cd random-csv
    python "C:\Program Files\Python38\Tools\scripts\2to3 -w.py" -w generate_csv.py
    python generate_csv.py 10 int int float str
    
  2. 15910行の CSV データ合成
    cd %HOMEPATH%
    python c:\pytools\random-csv\generate_csv.py 15910 int int float str  | "C:\Program Files\Git\usr\bin\nl.exe" -s ',' -n ln | "C:\Program Files\Git\usr\bin\dos2unix.exe" > 1m.csv
    
  3. 約 1G, 4G, 8G, 12G, 16G の CSV データ合成

    処理が終わるまで,数十分以上を見込む.

    Windows の場合

    cd %HOMEPATH%
    python c:\pytools\random-csv\generate_csv.py 15910000 int int float str  | "C:\Program Files\Git\usr\bin\nl.exe" -s ',' -n ln | "C:\Program Files\Git\usr\bin\dos2unix.exe" > 1g.csv
    python c:\pytools\random-csv\generate_csv.py 63640000 int int float str  | "C:\Program Files\Git\usr\bin\nl.exe" -s ',' -n ln | "C:\Program Files\Git\usr\bin\dos2unix.exe" > 4g.csv
    python c:\pytools\random-csv\generate_csv.py 127280000 int int float str  | "C:\Program Files\Git\usr\bin\nl.exe" -s ',' -n ln | "C:\Program Files\Git\usr\bin\dos2unix.exe" > 8g.csv
    python c:\pytools\random-csv\generate_csv.py 190920000 int int float str  | "C:\Program Files\Git\usr\bin\nl.exe" -s ',' -n ln | "C:\Program Files\Git\usr\bin\dos2unix.exe" > 12g.csv
    python c:\pytools\random-csv\generate_csv.py 254560000 int int float str  | "C:\Program Files\Git\usr\bin\nl.exe" -s ',' -n ln | "C:\Program Files\Git\usr\bin\dos2unix.exe" > 16g.csv
    

CSV ファイルから,テーブル定義 SQL の自動生成(csvkit を使用)

csvkit のオプションは次のページに説明がある.

https://csvkit.readthedocs.io/en/1.0.2/scripts/csvsql.html

テーブル定義のSQLファイルの生成

cd %HOMEPATH%
echo id,x,y,val,comment> a.csv
type 1m.csv >> a.csv
csvsql --tables T -i postgresql a.csv > 1m.sql

PostgreSQL に接続し,テーブル定義まで行う場合

cd %HOMEPATH%
echo id,x,y,val,comment> a.csv
type 1m.csv >> a.csv
csvsql --db postgresql://username:password@127.0.0.1:5432/dbname --insert a.csv
createdb test
csvsql --db postgresql:///test --tables T --insert a.csv

CSV ファイルを PostgreSQL のテーブルに取り込み

\copy でエラーが出る場合は,dos2unix で CR+LF を除去すると解決する場合がある.

psql
drop table if exists T;
create table T (
  id integer, 
  x real, 
  y real, 
  val real,
  comment varchar
);
\copy T from 1m.csv with csv;
select * from T limit 10;

8. Python でのデータの取り扱いプログラム例

データを丸ごとメモリに読み込んで SQL 文処理

pandasql は、pandas オブジェクトに対しての SQL 文を処理する機能を持つ。 データを、pandas オブジェクト丸ごとメモリに読み込み、SQL文で処理したいときに便利。 Python 内で実行される。PostgreSQL 等とは無関係。

下のプログラムでは,iris が pandas オブジェクト.

import pandas as pd
import seaborn as sns
iris = sns.load_dataset('iris')
from pandasql import sqldf, load_meat, load_births
pysqldf = lambda q: sqldf(q, globals())

print(pysqldf("SELECT * FROM iris WHERE sepal_length > 5;"))
print(pysqldf("SELECT sepal_length, sepal_width FROM iris WHERE sepal_length > 5;"))