初心者データサイエンティストの備忘録

調べたことは全部ここに書いて自分の辞書を作る

エンジニアリング

オブジェクト指向設計実践ガイド【第3章】まとめ

オブジェクト指向の設計方法を学んでいます。 今回は、「オブジェクト指向設計実践ガイド」の「第3章:依存関係を管理する」を読んでまとめていきます。 なお、使用する言語はPythonです。 オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔…

オブジェクト指向設計実践ガイド【第2章】まとめ

オブジェクト指向を使ってアプリケーションを作るために、オブジェクト指向の設計方法を学んでいます。 今回は、「オブジェクト指向設計実践ガイド」の第2章:単一責任のクラスを設計するを読んでまとめていきます。 なお、使用する言語はPythonです。 オブ…

pandas.mergeできないときは型を意識する

すごい基本的なことで、かつ調べればすぐわかることですがメモしておきます。 下記のような2つのデータフレームをカラムkeyで結合します。結合の仕方はなんでも良いです。 図1:結合対象のDatFrame 結合するときのスクリプトは下記の通りです。 import pand…

Pythonの@propertyの振る舞い

Pythonで@propertyがよくわからなかったので、色々調べてみた。 正直、完璧に理解した感はないが、一旦分かった範囲でまとめてみる。 @propertyとは? 「3.4. プロパティ - ゼロから学ぶ Python」よると、@propertyを下記のように説明している。 クラスのメ…

【読書記録】オブジェクト指向設計実践ガイド 第1章まとめ

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方作者:Sandi Metz技術評論社Amazon 体系的にオブジェクト指向の設計方法を学ぶため、本書を読み始めました。 本書を読んで、過去に自分が作成したダメコードの拡…

継承できないメソッド・変数

車輪の再開発ですが、Pythonにおいて継承できないメソッド・変数をまとめます。 継承できないメソッド・変数 結論からいうと、__(アンダースコアが2個)が冒頭についているメソッド・変数は継承できません。 次のスクリプトを見てみましょう。 class Parent…

【読書記録】「速習 Python3 オブジェクト指向編」~プログラミングを書く際に意識すること~

速習 Python 3 中: オブジェクト指向編作者:伊藤 裕一Amazon 本記事は「速習 Python3 オブジェクト指向編」で学んだ内容のうち、プログラミングを書く際に意識することと本書から学べなかったことをまとめました。 この記事は完全に私の備忘録なので、書きた…

【Python】クロージャを使ったメモイズ機能についてのメモ

Pythonのクロージャについて調べていたときに、下記の記事を発見した。 www.lifewithpython.com この記事の中の以下のコードの挙動がうまく理解できなかったので、色々調べてみた。 def fibonacci_func(): """フィボナッチ数列を返す関数を返す メモイズ機能…

pandas.DataFrameの特定条件の行から値だけ取得する方法

pandas.DataFrameで特定条件の行から単独の値だけ取得する際にハマったことのメモ。 まずは問題設定。以下のようなスクリプトでDataFrameから一つだけ値を取り出して色々操作したい。 import pandas as pd df = pd.DataFrame( { 'key': ['K0', 'K1', 'K2', '…

Excelで縦持ちデータから横持ちデータに変換する方法

Excelで縦持ちデータを、横持ちデータに変換する方法についてのメモ。ピボットを使うと簡単だが、ピボットが使えない状態で関数を使って実現する方法を記載する。 まず、問題設定をする。図1の縦持ちデータを図2の横持ちデータに変換する。つまり、商品名と…

pandas.DataFrame.joinの右側DataFrameのキーは、indexしか指定できない

pandas.DataFrameのjoin関数で少しはまったのでメモ。 2個のpandas.DataFrameを結合しようとして下記のコードを書いた。このとき、dfとotherに共通のカラムkeyで結合しようとしたのだが、エラーを吐いてしまった。 gisted6a13740d3bf16c8608f60e28a2a316 原…

動的に条件を作ってpandas.DataFrameから値を取得する

動的に条件を作ってpandas.DataFrameから値を取得したいときがある。次の例を考えてみる。 import pandas as pd df = pd.DataFrame({ "A" : [1, 0, 1, 0], "B" : ["a", "a", "b", "b"], "C" : [1, 2, 3, 4] }) このとき、ある時は 「A == 0」、また別の時は …

numpy.ndarrayの一部の値を取得する

numpy.ndarrayの一部の値を取得したいときがある。 例えば、図1の赤枠で囲まれた範囲の値を取得することを考える。 図1:問題の例 このとき、pythonには便利な関数numpy.ix_が用意されている。 numpy.org これを使うと簡単に所望の値が取得できる。実際にや…