Upload
Download free for 30 days
Login
Submit Search
chapter6
1 like
913 views
Y
ymk0424
chapter6
Data & Analytics
Read more
1 of 23
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
More Related Content
PDF
Shibuya Perl Mongers#12 No Sql Couch Db
Makoto Ohnami
PPTX
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
PDF
JSONBはPostgreSQL9.5でいかに改善されたのか
NTT DATA OSS Professional Services
PDF
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
decode2016
PDF
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
PPTX
データベース入門
拓 小林
PPT
Datomic&datalog紹介
あしたのオープンソース研究所
PPTX
20071204
小野 修司
Shibuya Perl Mongers#12 No Sql Couch Db
Makoto Ohnami
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
JSONBはPostgreSQL9.5でいかに改善されたのか
NTT DATA OSS Professional Services
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
decode2016
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
データベース入門
拓 小林
Datomic&datalog紹介
あしたのオープンソース研究所
20071204
小野 修司
What's hot
(20)
PDF
スキーマとURI
Fumihiro Kato
PDF
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
moai kids
PDF
オライリーセミナー Hive入門 #oreilly0724
Cloudera Japan
PDF
Hadoop概要説明
Satoshi Noto
PDF
Hadoop入門
Preferred Networks
PDF
Level dbを試した
takayuki kochi
PPTX
LINQ概要
ShinichiAoyagi
PDF
データベースシステム論13 - データベースの運用
Shohei Yokoyama
PDF
DeltaCubeにおけるユニークユーザー集計高速化(理論編)
BrainPad Inc.
PDF
LODを使ってみよう!
uedayou
PDF
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
PPTX
情報の構造化@Linked Open Data連続講座(2014.6.2)
Ikki Ohmukai
PDF
20200424_Writable_Arrow_Fdw
Kohei KaiGai
PDF
MapReduceプログラミング入門
Satoshi Noto
PPTX
DBpedia Japaneseとは?
National Institute of Informatics (NII)
PDF
Linked Open Dataとは
Linked Open Dataチャレンジ実行委員会
PDF
DBpedia Japanese
Fumihiro Kato
PDF
MapReduce入門
Satoshi Noto
PDF
【IVS CTO Night & Day】Aurora Update++
Amazon Web Services Japan
PDF
第4回 AIツール入門講座 Linked Open Data入門
Fumihiro Kato
スキーマとURI
Fumihiro Kato
掲示板時間軸コーパスを用いたワードトレンド解析(公開版)
moai kids
オライリーセミナー Hive入門 #oreilly0724
Cloudera Japan
Hadoop概要説明
Satoshi Noto
Hadoop入門
Preferred Networks
Level dbを試した
takayuki kochi
LINQ概要
ShinichiAoyagi
データベースシステム論13 - データベースの運用
Shohei Yokoyama
DeltaCubeにおけるユニークユーザー集計高速化(理論編)
BrainPad Inc.
LODを使ってみよう!
uedayou
Datalogからsqlへの トランスレータを書いた話
Yuki Takeichi
情報の構造化@Linked Open Data連続講座(2014.6.2)
Ikki Ohmukai
20200424_Writable_Arrow_Fdw
Kohei KaiGai
MapReduceプログラミング入門
Satoshi Noto
DBpedia Japaneseとは?
National Institute of Informatics (NII)
Linked Open Dataとは
Linked Open Dataチャレンジ実行委員会
DBpedia Japanese
Fumihiro Kato
MapReduce入門
Satoshi Noto
【IVS CTO Night & Day】Aurora Update++
Amazon Web Services Japan
第4回 AIツール入門講座 Linked Open Data入門
Fumihiro Kato
Ad
Similar to chapter6
(20)
PDF
九大_DS実践_Python基礎その2
RyomaBise1
PPTX
Qlik Talend Cloudしっかり学ぶ勉強会 #8 - Amazon S3 との接続.pptx
QlikPresalesJapan
PDF
Data Scientist Workbench - dots0729
s. kaijima
PDF
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
Hideo Takagi
PDF
LDA入門
正志 坪坂
PDF
[Japan Tech summit 2017] DAL 005
Microsoft Tech Summit 2017
PDF
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
uedayou
PDF
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
Koichi Hamada
PPTX
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Insight Technology, Inc.
PDF
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
Insight Technology, Inc.
PDF
AWS Black Belt Online Seminar 2017 Amazon Athena
Amazon Web Services Japan
PPTX
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
PPTX
統計環境R_データ入出力編2016
wada, kazumi
PPT
実行時のために最適なデータ構造を作成しよう
Hiroki Omae
PDF
Rを用いた外国語教育データの整理・要約
Yusaku Kawaguchi
PPTX
2012 02-02 mixi engineer's seminor #3
Yu Ishikawa
PDF
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
Satoshi Nagayasu
PDF
Data Scientist Workbench 入門
soh kaijima
PDF
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
PPTX
AWSで作る分析基盤
Yu Otsubo
九大_DS実践_Python基礎その2
RyomaBise1
Qlik Talend Cloudしっかり学ぶ勉強会 #8 - Amazon S3 との接続.pptx
QlikPresalesJapan
Data Scientist Workbench - dots0729
s. kaijima
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
Hideo Takagi
LDA入門
正志 坪坂
[Japan Tech summit 2017] DAL 005
Microsoft Tech Summit 2017
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
uedayou
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
Koichi Hamada
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
Insight Technology, Inc.
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
Insight Technology, Inc.
AWS Black Belt Online Seminar 2017 Amazon Athena
Amazon Web Services Japan
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Kazuyuki Miyake
統計環境R_データ入出力編2016
wada, kazumi
実行時のために最適なデータ構造を作成しよう
Hiroki Omae
Rを用いた外国語教育データの整理・要約
Yusaku Kawaguchi
2012 02-02 mixi engineer's seminor #3
Yu Ishikawa
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会
Satoshi Nagayasu
Data Scientist Workbench 入門
soh kaijima
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
AWSで作る分析基盤
Yu Otsubo
Ad
chapter6
1.
Y U M
I K O N A G ATA K E D E C . 1 9 . 2 0 1 4 PYTHON FOR DATA ANALYSIS (6)
2.
今回のお話 データの読み込み&書き出し、 そしてファイル形式
3.
6.1 テキスト形式のデータの読み込み(1) • どうしてPythonが、テキストやファイル処理理をする際 に使われるの? →それは、簡単な⽂文法でのファイル読み込み・タプルの ⽣生成・分解のような便便利利な機能があるから! 関数
説明 read_csv ファイル・URL等からデータを読み込む。(,) read_table ファイル・URL等からデータを読み込む(ʻ‘tʼ’) read_fwf 区切切り⽂文字のないデータを読み込む read_clipboard クリップボードからデータを読み込む
4.
6.1 テキスト形式のデータの読み込み(2) • 前述の関数は テキストデータ→データフレームへ変換するためのもの まずは ①コンマ区切切りのテキストファイル(.csv)をread_̲csvで。 ②read_̲tableを使うと、区切切り⽂文字を指定して読み込む ことも。
5.
6.1 テキスト形式のデータの読み込み(3) ファイルの読み込みにはオプションが使える ・defaultの列名が割り当てられる/ 自分で列名をつける
6.
6.1 テキスト形式のデータの読み込み(4) • Message列列をデータフレームのインデックスにしたい場 合: index_̲colに対して、ʼ’messageʼ’と列列の名前を指定するか、 インデックス番号4を指定する names
= ['a', 'b', 'c', 'd', 'message'] pd.read_csv('ch06/ex2.csv', names=names, index_col='message')
7.
6.1 テキスト形式のデータの読み込み(5) • 複数の列で構成される階層型インデックスを作る場合: -列の数か、名前のリストを指定する
parsed = pd.read_csv('ch06/csv_mindex.csv', index_col=['key1', 'key2']) parsed
8.
6.1 テキスト形式のデータの読み込み(6) • データ内に決まった区切切り⽂文字がない場合: s+
という正規表現で表す ヘッダ⾏行行にある列列数がデータ⾏行行の列列数よりも1つ少なくなって いるため、read_̲tableは1列列⽬目がデータフレームのインデック スになっている特別な場合なのだろうと推測してくれる! result = pd.read_table('ch06/ex3.txt', sep='s+') result
9.
6.1 テキスト形式のデータの読み込み(7) • さまざまなファイル形式を扱えるような機能
skiprows : 指定した⾏行行数(1⾏行行⽬目なら0)を読み⾶飛ばす. • ⽋欠損値の取り扱い デフォルト:NA, -‐‑‒1.#IND, NULLなど pd.read_csv('ch06/ex4.csv', skiprows=[0, 2, 3]) #1,3,4行目を読み飛ばす
10.
6.1 テキスト形式のデータの読み込み(8) read_csv関数とread_table関数の引数 引数
説明 path ファイルシステム上の位置やURL等を⽰示す⽂文字 sep or delimiter 正規表現・または、各列列をフィールドに分割する header 列列名として使う⾏行行に割り振られた番号を指定 index_col ⾏行行のインデックスとして使われる番号・名前(slide no.6) names オブジェクトの列列⽬目いのリスト skiprows 読み⾶飛ばす⾏行行番号 na_values ⽋欠損値で置き換える値 comment この引数に指定した⽂文字⾏行行こうを書く⾏行行からコメントとし て切切り出す parse_dates データを⽇日時として読み込む keep_date_col 複数の列列を結合して⽇日付として読み込む場合、結合にしよ うした列列を⾶飛ばす
11.
6.1 テキスト形式のデータの読み込み(9) 引数
説明 converters 列番号を表す名前を、関数にマッピングする{列名:関数} dayfirst 曖昧な可能性のある日程を読み込む際に使用 date_parser 日付を読み込む際に使用 nrows ファイル先頭で読み込む行数 iterator ファイルを部分的に読み込む際に使用 chunksize イテレーション用、ファイル内のブロック毎のサイズ skip_footer ファイル末尾で無視する行数 verbose 非数値の列に見つかった欠損値の数 encoding Unicodeとして用いる文字コード squeeze 読み込まれたデータに1つの列しかない場合、Seriesを返す thousands 3行区切りのセパレータ。 ‘,’など
12.
6.1 テキスト形式のデータの読み込み(10) • 非常に巨大なファイルを処理する場合など、ごく一部だけ を読み込む必要が出てくる. Ex.
10000行のデータがあるcsvファイルを処理する. ①このcsvファイル全体を読み込まず、数行だけ読み取りたい場合、 nrowsを指定する. ②ファイルを少しずつ読みたい場合、読み込む行数をchunksizeで指定 pd.read_csv('ch06/ex6.csv', nrows=5) chunker = pd.read_csv('ch06/ex6.csv', chunksize=1000)
13.
6.2 テキスト形式のデータの書き出し(1) • データは、読み込みと同様、区切り文字で区切られた形 で書き出しも可能。 *to_csv
メソッド:データをコンマ区切りのファイルに書き出す data = pd.read_csv('ch06/ex5.csv') #元データ data.to_csv('ch06/out.csv') #データがコンマ区切りになる
14.
6.3 JSONデータ(1) • csvデータと比べると、非常に自由度が高い。 例えば、、 JSONの文字列をPython形式に変換するにはjson.loadsを使う obj
= """ {"name": "Wes", "places_lived": ["United States", "Spain", "Germany"], "pet": null, "siblings": [{"name": "Scott", "age": 25, "pet": "Zuko"}, {"name": "Katie", "age": 33, "pet": "Cisco"}] } """ オブジェクトのキーは全て文字列でなければならない
15.
6.3 JSONデータ(2) • JSONの文字列をPython形式に変換するにはjson.loadsを使う •
Json.dumpsを使うと、PythonオブジェクトをJSONに変換できる import json result = json.loads(obj) result asjson = json.dumps(result) # 上記のresult(Pythonオブジェクト)をJSONに変換
16.
6.4 XMLとHTML WEBスクレイピング(1) • Webスクレイピング: ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと 例).
とあるURLの文書からリンクされているURLを抜き出してみる。 from lxml.html import parse from urllib2 import urlopen # urllib2:URLを開くための拡張可能なライブラリ parsed = parse(urlopen('http://finance.yahoo.com/q/op?s=AAPL +Options')) links = parsed.getroot().find(‘.//a’) # ‘.//a’(リンクのaタグ)を探す links[15:20] # HTML要素を表すオブジェクトが返ってくる
17.
6.4 XMLとHTML WEBスクレイピング(2) • 取得したHTML要素のオブジェクトから、URLやリンクテキストを取 得するには… •
この文書の全URLリストを得るとなると… lnk = links[28] lnk.get('href') lnk.text_content() urls = [lnk.get('href') for lnk in doc.findall('.//a')] urls[-10:]
18.
6.4 XMLとHTML WEBスクレイピング(3) • 文書内にの詳しい情報をもったテーブルを抜き出すには tables
= doc.findall('.//table') # tableタグを全部見つける(HTMLオブジェクトで返る) calls = tables[1] puts = tables[2] rows = calls.findall('.//tr') # 各データの先頭についているtrタグを探すことで、データを見つける #普通の関数で書くと… def _unpack(row, kind=‘td’): elts = row.findall(‘.//%s’ % kind) return [val.text_content() for val in elts]
19.
6.4 XMLとHTML WEBスクレイピング(4) • 前述で取得できたデータをデータフレームに変換すると もっと⾒見見やすいはず! 作成したこの関数に、lxmテーブルオブジェクトを与えて呼び出すと、 データフレームオブジェクトが取得でえきる
from pandas.io.parsers import TextParser def parse_options_data(table): rows = table.findall(‘.//tr’) header = _unpack(rows[0], kind=‘th’) data = [_unpack(r) for r in rows[1:]] return TextParser(data, names=header).get_chunk()
20.
6.4 XMLとHTML WEBスクレイピング(5) • HTML⽂文書で使⽤用した、lxml.htmlインターフェースではなく、 lxml.objectifyを使うと、XMLデータの処理理に便便利利! •
詳細な例例は、リンク切切れでした。 • やり⽅方としては、lxml.objectifyを使ってXMLファイルを読み込み、 ファイルのルートnodeへの参照をgetrootで取得する (lxml.htmlと同じ)
21.
6.5 HTMLやWEB APIを用いた読み書き •
多くのWebサイトでは、JSON形式等でデータフィード を公開しているAPIがある ↑このようなAPIにPythonからアクセスできる Ex. Twitterで「python pandas 」という単語を検索する には、下のようなHTTP GETリクエストを送信する ※現在このAPIはアクティブじゃなかった・・・ import requests url = 'http://search.twitter.com/search.json?q=python%20pandas' resp = requests.get(url)
22.
6.5 HTMLやWEB APIを用いた読み書き(2) •
Responseオブジェクトのtext属性には、Getクエリで 取得されたコンテンツ情報がある • データ内のresultsフィールドにツイートのリストがある ので、それを見てみる import json data = json.loads(resp.text) data.keys() data[‘results’]
23.
6.5 HTMLやWEB APIを用いた読み書き(3) •
ツイートフィールドのうち、使いたい属性のリストを引 数にしてデータフレームに渡す • 昔はこんなのが出てたらしい tweet_fields = ['created_at', 'from_user', 'id', 'text'] tweets = DataFrame(data['results'], columns=tweet_fields) tweets.ix[7]
Download