Python

【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\.…

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

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

【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 : キー…

【Python】Pandas ~ 基本編 / データフレーム ~

■ はじめに データフレームに関する基本的な操作をまとめておく。 目次 【1】データフレームを生成する 【2】データをループする 例1:itertuples() を使う 例2:iterrows() を使う 例3:dict にしてからループ 【3】データをフィルタリングする 使用…

【Python】オフライン環境下で pip install するには

■ はじめに https://dk521123.hatenablog.com/entry/2021/07/08/161406 https://dk521123.hatenablog.com/entry/2021/07/09/115553 で 外部ネットワーク が繋がらない状態で、 個別で pip install とした際に、依存するパッケージを先に 入れておかなくては…

【トラブル】pip install wheelファイル で Read time out が発生する

■ はじめに Amazon EMR(外部接続不可) に wheelファイルを pip install しようとした時に エラー「Read time out」が発生したので、その際の出来事をメモする 目次 【1】概要 【2】原因 補足:問題の切り分けに使ったコマンド「--no-deps」 【3】解決案…

【トラブル】Pandas で Excel を扱った際のトラブル

■ はじめに Pandas を扱う機会があって、Excel を扱った際に エラーが連チャンで発生したので、メモっておく。 目次 【1】エラー「Missing optional dependency 'xlrd'」が表示 【2】エラー「Excel xlsx file; not supported」が表示 【1】エラー「Missin…