Python

<Python, codecs> 文字列のエンコード、デコード

文字列strのエンコードencodeとデコードdecode。 codecsというモジュールでいろいろ対応できるらしいっす。 In [8]: import codecs 文字列を期待するものたち、、、 In [10]: codecs.encode('hage', 'utf8') Out[10]: b'hage' In [11]: codecs.encode('hage'…

<Python, yaml> Yamlしてみた。

設定ファイル config fileの1つの形式である、yamlをやってみた。 In [1]: s = ''' ...: name: Hage ...: sex: male ...: class: useless ...: hair: nothing ...: arms: ...: - gun ...: - pachinko ...: ''' In [3]: with open('aaa.yaml', 'w') as f: ..…

<selenium, Python> Proxyの設定... Firefoxの場合と、Pyvirtualdisplay

seleniumでProxyを指定する方法…Firefoxの場合。 あと、Pyvirtualdisplayで、Firefoxのヘッドレスheadlessをやってみた。 ヘッドレス、、とは、GUI無し。 つまり、うまくいけばtelnetやrshで端末から入って、コマンドラインで動かせる。 rom selenium import…

<Json, REST API> Json Test

REST APIの実験をかねて、Jsonのデータを返してくれるようなとこないかな? と探したらあった。 http://www.jsontest.com/ こりゃいいや。 早速試す。 In [1]: import requests In [2]: requests.get('http://echo.jsontest.com/key/value/one/two') Out[2]: <Response [200]></response>…

<Python> 文字コード

文字コード Character Codesで少し遊んだ。 UTF-8のコード表。 UTF-8コード表(1) このコード表を元にデコードdecodeしてみる。 In [36]: b'\xe3\x81\x82'.decode() Out[36]: 'あ' In [37]: b'\xc3\xa0'.decode() Out[37]: 'à' なるへそ。 じゃ、ってことで、…

<Python, pandas, Beautiful Soup> html tableからpandas dataframeへ。

html中にあるtableから、pandas dataframeを作る。 <tr> <td>タブとかを、ちくちくと、Beautiful Soupでパースしないといけないのか、、、 いやいや、そんな面倒なことは、誰かが、既に何かを作っているはず、、と思ってたら、あった。 pd.read_html()でいける。ちょ</td></tr>…

<Python, selenium> ブラウザのウインドウを切り替える。

セレニウムseleniumを使ってる時に、ブラウザbrowserのウインドwindowを切り替える技。 .window_handlesアトリビュートに、Window Idが入っているので、 それを、.switch_to_window()メソッドで指定する。 In [93]: from selenium import webdriver In [94]:…

<Python, iPython, Jupyter> Historyをファイルに保存する。

iPythonで、ちょろちょろ実行した結果のhistoryをファイルに保存saveする。 In [170]: %history -f aaa.py File 'aaa.py' exists. Overwrite? y Overwriting file. 29個目の回答がそれだった。 さんきゅー。 stackoverflow.com

<Python, selenium> 空白のあるクラス名を選択するには、、

Seleniumで、空白のあるクラス名を選択するには、、、 how to select the class name having a blank in it? まずは、xpathを使う。 In [133]: from selenium import webdriver In [144]: d = webdriver.Chrome() In [145]: d.get('http://nekoyukimmm.haten…

<Python, selenium> Chromeを動かしてみた。

ちょと、seleniumを試す。 >pip install selenium で、下記から、chromedriver.exeをゲットする。 sites.google.com そいつをパスpathが通っている、/usr/local/binに放り込む。 で、 In [1]: from selenium import webdriver In [6]: d = webdriver.Chrome(…

<Python, pandas, sentdex> resample

目的とするDataFrameから、値を抜き取りする、リサンプリング resample をしてみた。 In [20]: import datetime as dt In [21]: import pandas as pd In [22]: import pandas_datareader.data as web In [23]: s = dt.datetime(2000,1,1) In [24]: e = dt.da…

<pandas, Python, sentdex> Python Programming for Finance

www.youtube.com やってみた。 In [1]: import datetime as dt In [2]: import matplotlib.pyplot as plt In [3]: from matplotlib import style In [4]: import pandas as pd In [5]: import pandas_datareader.data as web In [6]: style.use('ggplot') In…

<Python, pandas> 縦にずらす。

縦にずらす。 In [22]: df = pd.DataFrame({'a':[1,2,3,4,5,6]}) In [23]: df Out[23]: a 0 1 1 2 2 3 3 4 4 5 5 6 In [24]: df.shift(-1) Out[24]: a 0 2.0 1 3.0 2 4.0 3 5.0 4 6.0 5 NaN In [25]: df.shift(1) Out[25]: a 0 NaN 1 1.0 2 2.0 3 3.0 4 4.0 …

<Python, numpy> 無限大

知ってましたか? pythonで無限大は、np.infか、float('inf')で表現するらしいっす。 In [1]: float('inf') Out[1]: inf In [2]: float('inf') == 0 Out[2]: False In [3]: float('inf') < 1 Out[3]: False In [4]: float('inf') > 1 Out[4]: True In [5]: i…

<Python, pandas> 日経平均を読み込む。

日経平均N225を読み込む。 pandas-datareaderを使う。 pandas-datareader — pandas-datareader 0.1 documentation まずはインストール。 % conda install pandas-datareader Fetching package metadata ......... Solving package specifications: .........…

<Python> Talk Python To Me

talkpython.fm

<Flask, Python> リクエストコンテキストで遊ぶ。

リクエストコンテキストrequest contextで遊ぶ。 つまり、リクエストを受けた状態、で遊ぶ。 その1 withでrequest context状態にする。 In [1]: from flask import request, Flask In [2]: app = Flask('aaa') In [3]: with app.test_request_context('/hel…

<Python, gspread> 読み書き。

gspreadでの読み書き。 まずは、コネクトして、Spreadsheetオブジェクトを作る。 In [4]: import os In [6]: import json In [7]: import gspread In [8]: from oauth2client.service_account import ServiceAccountCredentials In [9]: scope = ['https://s…

<Python, requests> 郵便番号ゲット

Pythonでもやってみた。 In [69]: import requests In [70]: r = requests.get('http://zipcloud.ibsnet.co.jp/api/search', params={'zipcode':'7830060'}) In [71]: requests.get('http://zipcloud.ibsnet.co.jp/api/search?callback', params={'zipcode':…

<conda, dos, Python> dos上でconda

dos上で、condaして、Python環境を切り替える方法。 C:\>where activate C:\Anaconda3\Scripts\activate C:\Anaconda3\Scripts\activate.bat C:\>conda info -e # conda environments: # py27 * C:\Anaconda3\envs\py27 root C:\Anaconda3 C:\>activate py27…

<Anaconda, msys2, conda, python> バグかな、、msys2上でcondaが失敗したので、直してみた。

バグなのか? msys2上で、Anacondaパッケージのcondaで、仮想環境に切り替える時、 pipがおかしかったので、少し直してみた。 現象。 % conda info -e # conda environments: # py27 C:\Anaconda3\envs\py27 root * C:\Anaconda3 % source activate py27 py2…

<Google Cloud Platform, Python, gspread> Google Spread Sheet へアクセスする。

グーグル スプレッド シートGoogle Spread Sheetにアクセスする。 最初に下記へ行って、 1... Google Drive APIの発行、有効化、 2... サービス アカウント キーの作成、及びjson形式でキーのダウンロードをする。 console.cloud.google.com ちと順を追って…

<Python, pandas> 行(row)を追加する。

行rowを追加する。 こういうデータフレームDataFrameがあった時、 In [71]: df Out[71]: id name birthday is_relative 0 1 Hage 1960-01-01 1 1 2 Hige 1960-01-02 1 1行追加したい時は、シリーズSeriesでデータ作って、.append()すればいいっぽい。 やっ…

<Pandas, peewee, sqlite> peeweeを少しためす。

peeweeを少しためしてみた。 まずは、データベースdatabase作成とデータ登録。 In [51]: from peewee import * In [52]: db = SqliteDatabase('people.db') In [53]: class Person(Model): ...: name = CharField() ...: birthday = DateField() ...: is_rel…

<Python> ファイル名を取得

スクリプトscriptのファイル名fileを取得する。 __file__に格納されてるらしい。 例。 こういうファイルがあった時、 In [76]: more hage.py print('hage') 読み込んで、 In [77]: import hage hage In [78]: dir(hage) Out[78]: ['__builtins__', '__cached…

<Python, pandas> 文字列の置換

シリーズSeriesでの文字列置換str replace df['column'].str.replace('','')を使う。 In [52]: df = pd.DataFrame({'a':['HAGE*', 'HAGE*']}) In [53]: df.a Out[53]: 0 HAGE* 1 HAGE* Name: a, dtype: object In [54]: df.a.str.replace('\*','') Out[54]: …

<Python> ファイル、ディレクトリの操作系

ファイルfile、ディレクトリdirectoryの操作系。 わかりやすい。 たすかるー。 qiita.com

<Python, pandas, Beautiful Soup> Excel から DataFrame への変換

PythonでエクセルExcelのデータを読み込んで、データフレームDataFrameにしたい。 最近のExcelさんは中身がバイナリでなくて、XMLってことは知っていたので、Beautiful Soupと組み合わせてみた。 と、いうことで、ファイル読み込み。 普通にリードしてみる。…

<Python, peewee, Windows, Visual Studio> peewee を入れた。

オブジェクト リレイション マッパー ORM (Object Relation Mapper)の、 peeweeがSQL Alchemyと比べて操作簡単そうなので、入れてみた。 が、いろいろメンドクサカッタので、メモ。 その1) pipでインストールをしてみた。 が、エラー。``` % pip install p…

<Python, conda> python 2.7 をインストール

python 2.7をcondaでインストール。 最初に確認。 >conda info -e # conda environments: # root * C:\Anaconda3 で、インストール。anacondaパッケージを指定して、一括インストール。 > conda create -n py27 python=2.7 anaconda が、途中で、ssl-16.0.0-…

<Python> static / class / instance(self) での変数の参照

Pythonで、 1. スタティックメソッドstatic method 2. クラスメソッドclass method 3. ふつー、、インスタンスメソッドinstance method つまり、self の時の変数variablesの参照を確認してみた。 まずは下記のようなクラスclass作成。 In [122]: class Bbb: …

<Python, Werkzeug> ハッシュパスワードの生成と比較

ハッシュパスワードhash passwordの生成generateと比較check。 In [46]: from werkzeug.security import * In [47]: whos Variable Type Data/Info ------------------------------------------------------------------- DEFAULT_PBKDF2_ITERATIONS int 100…

<Python, tqdm> プログレスバー

進行状況表示、プログレスバーprogress bar。 github.com

<Python, pandas> duplicate

重複したものを探すには、duplicate()。 In [85]: import pandas as pd In [86]: df = pd.DataFrame([[1,2],[1,3],[1,4]]) In [87]: df Out[87]: 0 1 0 1 2 1 1 3 2 1 4 で、duplicate()。 引数argvは、カラムcolumnを指定可。 In [88]: df.duplicated() Out…

<Python> 参照とコピー

いまさらながら、 参照referenceとコピーcopyを勉強した。 =は参照。 なので、 In [59]: lst = [1, 2, 3] In [60]: lst2 = lst In [61]: lst2[2] = 20 In [62]: lst2 Out[62]: [1, 2, 20] In [63]: lst Out[63]: [1, 2, 20] と、いうように、lst2はlstと同じ…

<Python, datetime, time> epoc秒から文字列時間へ変換

epoc timeから文字列時間string format timeへの変換。 その1 timeを使う。 In [11]: t = 1470353505 In [12]: import time In [13]: time.localtime(t) Out[13]: time.struct_time(tm_year=2016, tm_mon=8, tm_mday=5, tm_hour=8, tm_min=31, tm_sec=45, t…

<dos, Windows, Python> Pythonを実行するバッチファイル

Windowsでpythonを実行するバッチファイルbat file。 REM A batfile for running a pyhton script cd /d %~dp0 python script.py %* cd pause 詳しいことはここ。 qiita.com

<Python> 日付を整える。

日付dateを整える。 具体的には、一桁の日を二桁表示にする。 一回整えたい対象の日付を、datetime.datetime.strptime()で読み込み、 datetimeオブジェクト化して、それをstrftime()で、ぺっと吐き出す。 In [205]: from datetime import datetime as dt In …

<iPython, html> HTMLの表示

ipython notebookでHTMLを表示する方法。 s = '<p>Hage</b>' from IPython.display import HTML html = HTML(s) html

<Python, json> json.loads で文字のリストを読み込む場合、、、

文字列化strしているリストlistで、 リストの中身が文字のものを、 json.loadsする場合。 例。 In [126]: a = "['a','b']" In [127]: json.loads(a) --------------------------------------------------------------------------- : JSONDecodeError: Expec…

<Beautiful Soup> div + class + id での検索

divタグとid属性とclass属性を使った検索。 findAll()の引数argvのattrsにディクショナリdictを渡す。 In [47]: import requests In [48]: from bs4 import BeautifulSoup In [49]: url = 'http://nekoyukimmm.hatenablog.com/entry/2016/06/18/230837' In […

<Python, requests> requestsだって。

urlibでなく、requestsの方がナウいそうだ。 stackoverflow.com qiita.com 確かに簡単。 マニュアル。 Requests: HTTP for Humans — Requests 2.10.0 documentation

<Python, Linux> csvkit をいれた。

msys2の方にcsvkitを入れた。 pip install csvkit これで、csvlook csvcut やりたい放題。 マニュアル。 csvkit 0.9.1 — csvkit 0.9.1 documentation まとめ。 csvkitの使い方まとめ - Qiita

<Python, pandas> ix / iloc / loc の違い

パンダさんのデータフレームpandas.DataFrameで、 ixとilocとlocの違い。 DataFrameが空emptyの場合、locさんだけは、データを追加できる! 例。 まずは、空のDataFrame作成。 In [63]: import pandas as pd In [64]: df = pd.DataFrame() In [65]: df Out[6…

<Python> ファイル名のリスト + 時刻でソート

ファイル名fileのリストlistで、時刻timeでソートsort。 glob()とかos.listdir()はどうも順番が適当らしいので、うまくない。 いつものごとく、スタックさんに助けを乞う。 stackoverflow.com このうち、ちと、リストの内包表記に代えてみた。 まずは、ファ…

<Python> 文字コードのめも

python3の場合、文字列は、うにこーどunicodeのコードポイントを並べたもの とのこと。 python2とは違うので注意!。 python2の例を参考するとはまる。 その1 文字列strから、各文字コードのバイト列bytesにするencodeには下記。 In [1]: 'あ' Out[1]: 'あ'…

<Python, datetime> 現在の時刻を取得。

現在の時刻、今nowの時間timeを取得する。 In [27]: from datetime import datetime as dt In [28]: dt.now() Out[28]: datetime.datetime(2016, 7, 1, 11, 34, 44, 763319) In [29]: dt.now().strftime('%Y/%m/%d %H:%M:%S') Out[29]: '2016/07/01 11:35:21…

<Python, pandas> 要素が全て同じカラムを削る。

要素elementが全て同じカラムcolumnを削る。 2つ技あり。.isin()と.applymap()。 まずはベースのデータフレームDataFrame作成。 In [1]: import pandas as pd In [3]: df = pd.DataFrame({'a':[1,2,'a'],'b':['a','a','a'],'c':['ab','ab','ab']}) In [4]: …

<Python, pandas> 文字列を空白で分割して、新たなカラムを作成する。

データフレームDataFrameの中に取り込んだ文字列strを、 空白blankで分割splitして、新たなカラムcolumnを作成する。 In [73]: import pandas as pd In [74]: import io In [75]: s = ''' ...: 1 aaa AAA ...: 2 bbb BBB ...: 3 ccc CCC ...: ''' In [80]: d…

<Python, pandas> DataFrame.query()で変数を使う場合

.query()(grepみたいなもの)で変数を使う場合。 @を使う。 例。 In [100]: df = pd.DataFrame({'a':[1,2,'X'],'b':[4,'X',5]}) In [101]: df Out[101]: a b 0 1 4 1 2 X 2 X 5 In [102]: df.query('a == "X"') Out[102]: a b 2 X 5 In [103]: s = 'X' In […