2017-09-01から1ヶ月間の記事一覧

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

9.4 データのクリーニング df.born_in.describe() count 1052 unique 40 top freq 910 Name: born_in, dtype: object 9.4.1 混合した型の検出 #applyはseriesのメソッドでseriesの要素にtype関数を適用させている set(df.born_in.apply(type)) {str} 9.4.2 …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

9.3 インデックスとpandasのデータ選択 #列のカラム名 print(df.columns) #列数 print(len(df.columns)) Index(['born_in', 'category', 'country', 'date_of_birth', 'date_of_death', 'gender', 'link', 'name', 'place_of_birth', 'place_of_death', 'tex…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

import pandas as pd import numpy as np np.random.seed(0) 9.2データの調査 def reload_data(name='nobel_winners_dirty.json'): df = pd.read_json(open('data/' + name)) return df df = reload_data() df.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 1052 entries, 0 to 1051 </class>…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

8.7 パネル df1 = pd.DataFrame({'foo':[1,2,3],'bar':['a','b','c']}) df2 = pd.DataFrame({'baz':[7,8,9,11],'qux':['p','q','r','t']}) print(df1);print(df2) bar foo 0 a 1 1 b 2 2 c 3 baz qux 0 7 p 1 8 q 2 9 r 3 11 t pn = pd.Panel({'item1':df1,'…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

8.6 SeriesからDataFrameを作成する s = pd.Series([1,2,3,4]) print(s) 0 1 1 2 2 3 3 4 dtype: int64 s = pd.Series([1,2,3,4],index=['a','b','c','d']) print(s) a 1 b 2 c 3 d 4 dtype: int64 s = pd.Series({'a':1,'b':2,'c':3,'d':4}) print(s) a 1 b…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

8.5 DataFrameの作成と保存 df = pd.DataFrame({ 'name':['Albert Einstein','Narie Curie','William Faulkner'], 'category':['Physics','Chemistry','Literature'] }) print(df.head()) category name 0 Physics Albert Einstein 1 Chemistry Narie Curie …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

jupyter notebookから直接MarkDownファイルに変換してここに貼り付ける方式に変更した 8.4DataFrame import pandas as pd PATH = "/home/beetle/myproject/DataVisualization/nobel_winners/dataviz-with-python-and-js/Ch06_Heavyweight_Scraping_with_Scra…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

配列関数の作成 移動平均の計算¶ def moving_average(a,n=3): ret = np.cumsum(a,dtype=float) ret[n:] = ret[n:] - ret[:-n] return ret[n - 1:]/ n a = np.arange(10) print(a) print(moving_average(a,4)) 結果 [0 1 2 3 4 5 6 7 8 9] [ 1.5 2.5 3.5 4.5 …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

7.1.2配列のインデックス指定とスライス a = np.array([1,2,3,4,5,6]) print(a[2]) print(a[3:5]) b = a[:4:2] = 0 print(b) a = np.array([1,2,3,4,5,6]) print(a[::-1]) 結果 3 [4 5] 0 [6 5 4 3 2 1] a[:4:2]の結果だけ違う? ちなみに0の代入をやめると …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.8パイプラインを使ったテキストと画像のスクレイピング #nwinners_minbio_spider.py import scrapy import re BASE_URL = 'http://en.wikipedia.org' class NWinnerItemBio(scrapy.Item): link = scrapy.Field() name = scrapy.Field() #このnameフィール…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.7 Scrapyパイプライン P157の最初のコードに# nobel_winners/nobel_winners/setting.pyとあるがpipelines.pyの間違いかな? #pipelines.py import scrapy from scrapy.exceptions import DropItem class DropNonPersons(object): def process_item(self, i…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

いままでWindows上で行っていたがUnicodeErrが頻発するのでlubuntu上に変更する #nwinners_full_spider.py import scrapy import re BASE_URL = 'http://en.wikipedia.org' class NWinnerItem(scrapy.Item): name = scrapy.Field() link = scrapy.Field() ye…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.6.1 ページのキャシュ setting.pyのHTTPCACHE_ENABLED=True行をコメントアウト 6.6.2リクエストの作成 import scrapy import re BASE_URL = 'http://en.wikipedia.org' class NWinnerItem(scrapy.Item): name = scrapy.Field() link = scrapy.Field() year…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.5人物情報ページのスクレイピング 人物情報ページでWikiDataへのリンクをさがした。 そのアドレスに移動してみると www.wikidata.org WikiDataの画面に遷移した

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.4 最初のScrapyスパイダー #nminners_list_spider.py import scrapy import re class NWinnerItem(scrapy.Item): country = scrapy.Field() name = scrapy.Field() link_text = scrapy.Field() class NWinnerSpider(scrapy.Spider): name = 'nwinners_list…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.3xpathを使った対象HTMLの設定 xpathとは木構造をもつHTML要素を指定する記法 h2の上でCopy XPathコマンドを実行すると //*[@id="mw-content-text"]/div/h2[2] が得られた。 他のCopyコマンドも実行してみた outerHTML <h2><span class="mw-headline" id="Argentina">Argentina</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span></span></h2>

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.2対象の設定 http://en.wikipedia.org/wiki/List_of_Nobel_laureates_by_country (国ごとに受賞者のリストがある)

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

6.1Scrapyの準備 Scrapyがinstallされていなかったので >conda install -c https://conda.anaconda.org/anaconda scrapy とした。scrapyだけが」installされるのだろうとおもっていたら 新規installが18、アップデートが4個入ってきた。 attrs: 15.2.0-py35_…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

5.7.1選択パターンの作成 from bs4 import BeautifulSoup import requests def get_column_titles(table): cols = [] for th in table.select_one('tr').select('th')[1:]: link = th.select_one('a') if link: cols.append({'name':link.text,'href':link.a…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

5.4ライブラリを使ったWEB APIへのアクセス Tweetのアクセストークン他取得できなかったので省略 5.6 スープの取得 def get_Nobel_soup(): response = requests.get(BASE_URL + '/wiki/List_of_Nobel_laureates',headers=HEADERS) return BeautifulSoup(resp…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

5.3.1 import requests OECD_ROOT_URL = 'http://stats.oecd.org/sdmx-json/data' def make_OECD_request(dsname,dimensions,params=None,roo_dir=OECD_ROOT_URL): if params is None: params = {} dim_args = ['+'.join(d) for d in dimensions] dim_str = …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

5.2requestsを使ったデータファイルの取得 import requests response = requests.get("http://en.wikipedia.org/wiki/Nobel_Prize") for resule in response: print(resule) 結果 膨大なHTML Docが返されてくる 取得したページ import requests response = r…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

4.7.3円 <meta charset="utf-8"> <style> svg#chart{ background: lightgray; } </style> <svg id="chart" width="300" height="225"> <circle r="15" cx="100" cy="50"></circle> </svg> <body> <script src="http://d3js.org/d3.v3.min.js"></script> <script src="script.js"></body></meta>

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

4.6プレースホルダを含む基本的なページ <meta charset="utf-8"> <link rel="stylesheet" href="style1.css" type="text/css"/> <body> <div id="chart-holder" class="dev"> <div id="header"> <h2> A Catchy Title Coming Soon ... </h2> <p>Some body text describing what this visualization is al…</p></div></div></body></link></meta>

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

4.4.1 >python -m http.server 結果 4.4.3 HTMLスケルトン <meta charset="utf-8"> <div id='viz'>Hello</div> <link rel="stylesheet" href="style.css"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> </link></meta>

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.8日付、時刻、複合データ d = datetime.now() print(d.isoformat()) """ iso 8601 fromat yyyy-MM-ddTHH:mm:ss 日本標準時(JST) 2014-10-10T13:50:40+09:00 協定世界時(UTC) 2014-10-10T04:50:40Z """ 結果 from dateutil import parser d = parser.parser…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.7MongoDB pymongoはinstallされていなかった。 pip install pymongoでver-3.5.1がinstallされた MongoDBをinstallした場所(C:\Program Files\MongoDB\Server\3.4\bin)に移動して >md c:\data\db を実行するとCドライブ直下にdata\dbフォルダを作成する …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.6SQL sqlalchemyはcondaに入っていたのでinstallする必要はなかった。 3-6.py nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'n…

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.5JSON 3-5.py json形式のファイルを作る import json nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'nationality':'British', …

「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.4 CSV,TSV,行/列データ形式 import csv nobel_winners = [ {'category':'physics', 'name':'Albert Einstein', 'nationality':'Swiss', 'sex':'male', 'year':1921}, {'category':'physics', 'name':'Paul Dirac', 'nationality':'British', 'sex':'male',…