Python

【Python】Python ~ 基本編 / urllib ~

■ はじめに Python から API をコールすることになりそうで その際に使用する urllib についてメモ。 目次 【1】urllib 1)使用例 2)AWS Glue のサポート状況 補足:サードパーティライブラリ「Requests」 【2】API仕様 1)urllib.request.Request 2…

【Python】単体試験 / unittest ~ あれこれ編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/02/223658 https://dk521123.hatenablog.com/entry/2021/03/31/000000 https://dk521123.hatenablog.com/entry/2021/04/05/165656 の続き。 今回は、Python標準 unittest の Tips を纏めておく 目…

【Python】Static Typing linter ~ mypy ~

■ はじめに 図書館で以下の本を借りて、 mypy について学んだので、メモ Pythonエンジニア育成推進協会監修 Python実践レシピ作者:鈴木 たかのり,筒井 隆次,寺田 学,杉田 雅子,門脇 諭,福田 隼也技術評論社Amazon 目次 【1】mypy 【2】環境設定 【3】使い…

【Python】Python ~ globals() / locals() ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/05/15/140053 の続き。 globals()ってのを扱ったから、どんなものか調べてみた 目次 【1】関連する組み込み関数 1)globals() 2)locals() 【2】使用上の注意 【3】サンプル 【1】関連する組み…

【Python】PythonZen & PEP 8 検定試験

■ はじめに 「PythonZen & PEP 8 検定試験」がリリースされて 受験してみたので、メモ。 無料だし、受けてみて、結構、勉強になるので結構お勧め。 特に、PythonZenって、名前くらいで、全然知らなかったので 有意義だった。 目次 【1】PythonZen & PEP 8 …

【Python】PythonZen(The Zen of Python)

■ はじめに https://pythonzen-pep8-exam.jp/ https://www.pythonic-exam.com/archives/news/python-zen で「PythonZen & PEP 8 検定試験」って 無料で受けられるPython資格試験をうけてみた。 (試験については、以下の関連記事を参照のこと) https://dk5211…

【Python】Python ~ 基本編 / パス情報抽出 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/09/02/000000 の続き。 「パスからファイル名を抜き出す」とか 「ファイル名から拡張子を抜き出す」とかを結構やることが多く なんだっけ?っていつもなるので、まとめておく 目次 【1】パス、ファ…

【Python】Python 3 エンジニア認定データ分析試験

■ はじめに https://dk521123.hatenablog.com/entry/2019/12/17/225829 https://dk521123.hatenablog.com/entry/2020/11/21/000000 https://dk521123.hatenablog.com/entry/2020/12/07/175729 の続き。 2022年4月末までにPython3エンジニア認定データ分析試…

【Python】Pandas ~ NaNをNoneに変換する ~

■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2022/02/16/000000 で扱った pd.read_json() をテストしていたら、 意図した動作にならなかった。 原因を探っていたら、None(null)になってほしい値が Nan(非数(英語:Not a Number))になっ…

【Python】Pandas ~ 基本編 / JSON編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/11/17/000000 https://dk521123.hatenablog.com/entry/2020/11/18/000000 https://dk521123.hatenablog.com/entry/2021/01/25/000000 の続き。 JSONを扱うことになったので、メモ。 目次 【1】JSON…

【Python】Pandas ~ データフレームの相互変換 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/07/25/000000 からの派生。 Pandas のデータフレーム(Data frame)へ変換する必要があったのでメモ。 目次 【1】Data Frame に変換する 1)List => Data Frame 2)dict => Data Frame 【1】Data…

【Python】仮想環境 ~ pyenv ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/11/141852 より分冊。 昨今、色々なプロジェクトに首を突っ込んでいる関係で Pythonのバージョンを切り替えたり大変だ。 そこで、pyenv について扱う。 目次 【1】環境設定 1)Linux の場合 2…

【Python】Python ~ 基本編 / JSONあれこれ ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/19/104805 の続き。 JSONに関して扱うことになったので、メモ。 目次 【1】JSONインスタンスをコピーする 【2】JSONをマージする 【3】JSONオブジェクトをフィルタリングする 【4】SELECTした…

【Python】パッケージ管理 ~ conda ~

■ はじめに conda について扱う。 目次 【1】環境設定 1)プロキシ設定 【2】condaコマンド 1)インストール 2)別バージョンのPython環境を作成する 【1】環境設定 1)プロキシ設定 以下を用意する。 [C:\Users\[ユーザー名]\Anaconda3\.condarc] pr…

【Python】Python ~ 基本編 / 日付・日時あれこれ ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/14/121909 の続き。 テストデータなどを作るのに、日付の処理について扱ったのでメモ。 目次 【1】X日前の日付の取得 【2】日付でループさせる 【3】月初・月末の取得 【1】X日前の日付の取得…

【Python】Python ~ 基本編 / 型指定・Typing ~

■ はじめに 今更なのだが、Pythonで データ型を指定して 書くことを改めて、ちゃんと調べてみたので、メモ。 はじめ、軽ーく書くつもりだったのだが、 調べていくうちに思いのほか長くなってしまった、、、 目次 【1】関連用語 1)関数アノテーション(Fun…

【Python】Pythonで セキュアなランダム文字列生成を考える

■ はじめに システムのパスワードを決めるために、 より安全な文字列を生成する必要ができたので Pythonで生成する方法を調べてみた。 ついでに、「トークン」や「UUID」も載せておく。 ちなみに、Java版で同じことを過去にやっていた。 【Java】セキュアな…

【Python】Python ~ 基本編 / 抽象クラス ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/12/075251 https://dk521123.hatenablog.com/entry/2019/08/29/220537 の続き。 今更ながら、Pythonの抽象クラス(Abstract Class) を知ったので、メモ。 目次 【1】Pythonの抽象クラス - ABC (…

【Python】単体試験 / pytest ~ 基本編 / pytest-mock ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/12/13/224810 https://dk521123.hatenablog.com/entry/2021/11/24/163751 の続き。 PyTest の Mock について、学ぶ。 目次 【1】環境設定 【2】サンプル 例1:戻り値をMock化 - mocker.patch 例2…

【Python】単体試験 / pytest ~ 基本編 / Fixture ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/12/13/224810 の続き。 PyTest の Fixture(フィクスチャ)について、学ぶ。 目次 【1】Fixture(フィクスチャ) 【2】Scope(スコープ) 【3】サンプル 【1】Fixture(フィクスチャ) * PyTest …

【Python】Python で Parquet を扱う

■ はじめに Parquet (パーケット) 形式のファイルを取り込むことになって そのためのテストデータ(ファイル)を作りたいので、 Python で Parquet を扱う方法をメモしておく。 Parquet については、以下の関連記事を参照のこと。 Parquet ファイル https://…

【Python】Python formatter ~ black ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/07/000000 https://dk521123.hatenablog.com/entry/2021/11/08/221219 の続き。 色々調べて、flake8 と black を使いそうなので、 今回は、Python の フォーマッター「black」について、 設定の仕…

【Python】パッケージ管理 Poetry ~ 入門編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/11/141852 で、以前、pipenv などを取り扱ったが、 新たに、Poetry(ポエトリー)なるものを教えてもらったのでメモ。 目次 【1】Poetry 1)公式サイト 【2】環境構築 1)前提条件 2)インス…

【Python】Python を奇麗に書くためのツール群

■ はじめに https://dk521123.hatenablog.com/entry/2020/02/07/000000 の続きで、Pythonのコードチェックにおいて、 flake8 以外にも、色々なツールがあふれている。 そこで、フォーマッターなども含めた Python を奇麗に書くためのツール群について、整理…

【Python】Python ~ 基本編 / bool ~

■ はじめに 文字列からbool に変換する際に 【1】の「意図した動作にならなかった例」のように 実装したが、うまくいかなかったので、メモっておく。 目次 【1】文字列 => bool に変換する際の注意点 【2】文字列 => bool に変換 1)サンプル 2)補足:…

【Python】 Python ~ 基本編 / astモジュール ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/10/05/105550 で、json化するのに普段は、json.loads()を使っていたのだが astモジュールってのがあるのは知らなかった。 目次 【1】astモジュール 【2】literal_eval() 1)json.loads() との違い…

【Python】Python ~ 基本編 / 外部コマンド実行 ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/07/30/000000 で扱った pigz を Python から 起動するような処理を見た。 今回は、Python から コマンド実行することについて、まとめてみた。 目次 【0】外部コマンド実行モジュールについて 【1…

【Python】Python ~ 基本編 / 文字列比較 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/10/12/075251 https://dk521123.hatenablog.com/entry/2021/06/07/164858 の続き。 find() って文字列比較で使っているコードをみて、 あんまり使ったことなかったので、調べてみた。 (調べた結果、…

【Python】Pandas ~ apply / transform ~

■ はじめに Pandas の apply() と transform() について、 触れる機会があったので、メモしておく。 目次 【1】apply() 【2】transform() 【1】apply() * 行全体や列全体に対して、同じ操作をしたいときに使用する API https://pandas.pydata.org/pandas-…

【Python】Pandas ~ データ連結 / 結合編 ~

■ はじめに Pandas の データフレームの結合に関してメモっておく。 目次 【1】pd.concat() 1)オプション a) index:連結方向の指定 2)サンプル 3)参考文献 【2】pd.merge() 1)オプション a) how:結合方法を指定 b) on, left_on, right_on : キー…