hatunina’s blog

メモと日記です

Python

「プログラマのためのDocker教科書」を読んでPython環境を作った

読みました。 www.shoeisha.co.jp 業務でDockerの機運が高まっていたので読んだ。 前半の基本的なインフラ周りやdockerコマンド、Dockerfile等についてちゃんとまとまっていてよかった。 正直、ググれば集まるような情報ではあるけど、検索力が低いので断片…

pandas.DataFrameからlistの要素を取得したい

あんまり使う機会ないけど毎回忘れるのでメモです。 こんな感じのitemsがリストになっている要素を取得したいやつです。 df.head() # id items # 0 A [A, B] # 1 B [B, C, D] # 2 C [B, C] print(df.iloc[2, 1]) print(type(df.iloc[2, 1])) # ['B', 'C'] # <class 'list'></class>…

Python2.7とPython3.5の組み込み関数lowerの話

たぶん超絶ニッチ でも気になったから覚えているうちにまとめます。 なんならちゃんと解決してないので誰か教えてください。 状況 lower関数ですが、対象となる文字列を小文字に変換してくれるやつです。 まずはPython2.7での挙動を確認します。 # ABは半角 …

Python2.7からPython3.5へ移行した

まだ完全に移行完了した訳ではないけど覚えているうちにまとめておく 理由 システム自体はPython2.7で動いているんだけど、新しくNeuroNERというライブラリを使うことになり、これ3.x系じゃないと動かないやんけ!ってなったからです。 やったこと ざっくり…

pd.Seriesに辞書を渡すとキーで昇順にソートされる

例 Seriesを作る際にindexを指定した場合、指定したindexはリストなので順番を持っています。 なので、リストの順番でSeriesが作られます。 hoge = pd.Series([1, 2, 3, 4, 5], index=['C','A','B','E','D']) print(hoge) # 実行結果 C 1 A 2 B 3 E 4 D 5 dt…

pandasのSettingWithCopyWarningの対処法

事象 こんな感じのデータフレームがあった時 import pandas as pd df = pd.DataFrame({'A': ['a', 'b', 'c', 'd', 'e'], 'B': [1, 1, 1, 2, 2]}) print(df) # 実行結果 A B 0 a 1 1 b 1 2 c 1 3 d 2 4 e 2 列Bが1のとこだけ抽出して新しい列を追加したいな〜…

bitflyerから日付を指定して約定履歴を取得するスクリプトを改良しました

これの続きです。 hatunina.hatenablog.com 追加したところ ・データ取得開始日だけでなく取得終了日(時間)まで指定できるようになりました。 ・取得したデータを1分足、1時間足、日足のHLOC(高値、安値、始値、終値) + 出来高に変換できるようになりま…

bitflyerから日付を指定して約定履歴を取得するスクリプトを作りました

作りました。 github.com この方とめっちゃ被ってるけど俺氏3月末から着手してたから。。ユルシテ。。。。 sshuhei.com 経緯 botは去年の6月ぐらいにコインチェックのAPIで作っていました。Javaで! 当時はJavaしか使えなかったのでラッパーが公開されてい…

pandasのset_valueを.at[]に書き換える

大量のset_valueを書き換える雑務が降ってきたのでついでにまとめる とりあえず例 import pandas as pd import numpy as np from numpy.random import seed seed(1) df = pd.DataFrame(np.random.randn(5, 4), columns=list('ABCD')) print(df.head()) 実行…

crfsuiteとpycrfsuiteについて

CRFについて勉強中です。 色々調べつつサンプルを動かして見ました。 こちらはコマンドラインで実行できるcrfsuiteのチュートリアル記事です。 CRFsuite - Tutorial on Chunking Task - 英語ですが、難しい単語は出てこないですしざっくり大まかな概要は把握…

高階関数とlambda式

パーフェクトPython 130Pあたりの内容です。 高階関数とは、関数を引数としてとったり戻り値として返す関数を指します。 例えば、こんな感じ。 def spam(): print('spam!') def ham(arg): print('ham!') arg() def egg(): print('egg!') return spam spam() …

Pythonのconfigparserで設定ファイルを読み込む

mainのプロセスで初期化する内容が多くなって来た時には設定ファイルを作成して読み込むのが良い。 例えば、こんな感じのmain.pyがあったとします。 #!/usr/bin/env python # -*- coding: utf-8 -*- class Main(object): def __init__(self): self.data_dir=…