ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Python

【Python】Pandas の .apply() 関数に例外処理を追加する方法

Pandas の .apply() 関数に lambda の処理を入れていたのですが、1レコードでも例外が含まれていると全ての処理に影響してしまうという問題がありました。 コード 問題のコード 改良 参考 コード 問題のコード import pandas as pd import numpy as np _df=p…

【pandas】欠損値を除外する処理

pandas のデータフレームの欠損値を除外する方法をここにメモします。 dropna() メソッド 欠損値を除外するには dropna() メソッドを使います。 パラメータ how='all' すべての値が欠損値 NaN である行・列を削除 how='any' 欠損値 NaN が一つでも含まれる行…

【Pandas】read_csv でヘッダあり・なしの読み込み

pandas の csv 読み込みでヘッダあり・なしの読み込み方法をメモします。 使い方 ヘッダあり df = pd.read_csv(filename, header=0) ヘッダなし 「header」に「None」を渡した場合、ヘッダなしの処理になります。 カラム名の指定がない場合 0, 1, 2, ... と…

【pandas】read_csv でどのようなデータが空データになるか検証

pandas の read_csv でどのようなデータが空データになるか検証を行いました。 入力情報 検証したいこと ダブルクォーテーション(")のみ シングルクォーテーション(')のみ 空 半角スペースのみ 全角スペースのみ csv $ cat sample.csv 1,1-1,"1-2" 2,"",…

【Flask】render_template を使ってみました

Flask で render_template を使ってみたので、ここにメモを残します。 サンプルコード python html メモ サンプルコード python from flask import Flask, render_template app = Flask(__name__) @app.route('/index') def index(): foo = "sample 01" bar …

【s3】ファイルの扱い方を調べてみました

pythonを使ってs3のファイルを扱う方法がわからなかったのでここに調査内容をまとめました。 メモ サンプルコード アップロード ファイル確認 ファイルダウンロード ファイル削除 メモ aws_access_key_id / aws_secret_access_key はマスク sample.txt は事…

【Python】note: This error originates from a subprocess, and is likely not a problem with pip.

python で以下のエラーが出たのでその時のメモをここに残します。 AttributeError: cython_sources [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error × Getting…

【Raspberry Pi】pip install が失敗する

Raspberry Pi で「pip install」を実行したところ以下のようなエラーになってしまいました。 test@raspberrypi:~/Desktop/samples $ pip install -r requirements.txt error: externally-managed-environment × This environment is externally managed ╰─> …

【python】mqtt を使ってみる

mqtt を使ってみたので、その時のメモをここに残します。 mqtt とは メリット 準備 Mosquitto インストール Broker client python paho-mqtt インストール 動作検証 broker(mosquitto) 起動 状態確認 Publisher / Subscriber 動作確認 Subscriber 実行 Publi…

【python】スプレッドシートの操作のメモ

gspread を使ってスプレッドシートを操作するときのよく使うサンプルをここにメモします。 ワークシートの操作 シート新規作成 書式 サンプル シート削除 書式 サンプル シート一覧取得 書式 サンプル シート名変更 書式 サンプル セルの操作 セルの値取得 …

How should I write Try/Except in a single line in python?

以下の問題をどうにかしたかったのですが、なかなかいい回避方法が思いつきません。;;一旦ここにメモφ(・ω・`). $ docker run --rm -u "1001" -v `pwd`:/mnt -e "TZ=Asia/Tokyo" -w /mnt --env-file env "sample" python -c "import os;import pandas as pd…

【Google】Cloud Storage を使ってみる

python を使って Google Cloud Storage にファイルをアップロードするタスクがあったので、対応手順をここにメモします。 Google Cloud Storage とは アップロード手順 準備 GOOGLE_APPLICATION_CREDENTIALS 生成 python ライブラリインストール(google-clou…

【Python】filecmp でファイルやディレクトリの比較

filecmp を使ってファイルやディレクトリの比較をしてみたので、その時のメモをここに残します。 filecmp とは 使い方 ファイルの比較 ディレクトリにあるファイルの比較 ディレクトリ比較 サンプル ファイルの比較 評価用ファイル コード 実行結果 ディレク…

【python】pybullet を使ってみる

pybullet を使ってみたので、その時のメモをここに残します。 pybullet インストール セットアップ サンプル実行 humanoid_manual_control.py pybullet pybullet は、オープンソースの物理演算エンジンです。 pybullet を使えば、Pythonで深層強化学習やロボ…

【Python】No module named '_tkinter' と表示されたときの対応

Mac にpyton をインストールしようとしたところ、エラーになってしまったのでその時の対応方法をここにメモします。 エラー 対処法 エラー pyenv で python v3.11.4 をインストールしようとしたところ、"ModuleNotFoundError: No module named '_tkinter'"と…

【Python】slackweb を使って slack に投稿

slackweb を使って slack に投稿する方法をここにメモします。 準備するもの slackweb ドキュメント github インストール サンプルコード text を投稿 attachments を使った投稿 準備するもの Webhook URL slackweb ドキュメント github github.com インスト…

【Python】json.dumps()で Unicode で表示される文字列を読めるようにする方法

python の json ライブラリを使っていて、json.dumps() で日本語が "\uXXXXXXXXXXXX" となるときの対処法をここにメモします。デフォルトでは、json.dump や json.dumps を使用すると、Unicode文字列はエンコードされてしまいますが、「enseure_ascii = fals…

【python】dolly-japanese-gpt-1b を使ってみる

dolly-japanese-gpt-1b を使って生成AIで遊んでみました。 準備 python バージョン確認 sentencepiece インストール torch インストール transformers インストール 使ってみる コード dolly-japanese-gpt-1b 実行 結果 質問と回答 質問: 一番好きなファイナ…

【Python】pyenv のアップデート方法(ubuntu)

pyenv は、pythonのバージョン管理システムです。 先日 v3.11.3をインストールしようとしてしたところ、以下のメッセージがでたため pyenv をアップデートしました。 $ pyenv install 3.11.3 python-build: definition not found: 3.11.3 See all available …

【Python】concurrent.futures を使った非同期処理

concurrent.futures を使って非同期処理(並列化)を実装してみたので、その時のメモをここに残します。 マニュアル 使い方 Executor max_workers マルチプロセス(ProcessPoolExecutor) マルチスレッド(ThreadPoolExecutor) プロセスとスレッドについて プロセ…

【python】asyncio を使った非同期処理

Python で非同期処理をしてみたので、ここにメモを残します。 asyncio とは ドキュメント asyncio とは "async / await" という構文を使って並列処理をするライブラリです。 ドキュメント asyncio --- 非同期 I/O — Python 3.11.0b5 ドキュメント

【Python】W605 invalid escape sequence '\W' を修正するには

flake8 でコードをチェックすると以下の警告が出てきたので解決する方法を調べてみました。 警告 W605 invalid escape sequence '\W' ルール Python 3.6 の時点で、有効なエスケープ シーケンスではないバックスラッシュと文字のペアは DeprecationWarning …

【Python】black でコードを整理

最近コードを整理するときに black を使用しています。github.com インストール $ pip install git+https://github.com/psf/black 使い方 $ black {source_file_or_directory}

【python】`ModuleNotFoundError: No module named '_ctypes'`というエラーを回避する方法

python の開発環境を移設したところ、新環境で以下のエラーに引っかかってしまったので、ここに回避方法をメモします。 問題のエラー 原因 対策 回避策 python アンインストール libffi-dev インストール 再度 python インストール python パッケージインス…

【python】`pip install requirements.txt` がうまくいかなかった時の対応

pyenv で v3.9.6 のpythonをインストールして以下のコマンドを実行したところ処理が失敗したので、困ったのでメモを残します。 $ pip install -r requirements.txt Collecting docopt==0.6.2 Using cached docopt-0.6.2.tar.gz (25 kB) Preparing metadata (…

python で json -> csv 変換

python を使って json から csv に変換させたい場合のメモをここに残します。 データ 入力データ(json) 出力データ(csv) プログラム データ 入力データ(json) 入力データは以下のものを想定してます。 { "template": [ { "path": {{path}}, "accountId": {{a…

【python】PyDrive をアップグレードしたら Google ドライブにアップロードする処理が失敗するようになって困った

PyDrive を使った古いプログラムを改修してライブラリをアップグレードしたら、 Google ドライブにアップロードする処理が失敗するようになって困ったためここに回避方法をメモします。 症状 原因 回避方法 症状 問題の python スクリプトを実行すると、処理…

【python】 yield の動きを調べてみる

yield の動きがピンとこないので、動作を調べてみました。 return と yield の違いについて return yeild プログラム yeild の挙動について(ループ) yeild の挙動について(ループ以外) return と yield の違いについて return と yeild を比較してみます。 r…

【python】pep8 の E501 とは何か調べてみる

python で開発を行っていると、たまにプルリクエストのコメントで E501 の指摘を目にします。 そこで今回は、pep8 の E501 についてメモしようと思います。python には pep8 というコーディング規約があります。 www.python.orgE501 は「E501 line too long…

python - うちのねこの画像をリサイズ

うちのネコの写真を OpenCV でリサイズしてみました。 import cv2 from matplotlib import * from pylab import * fname = "cat.jpg" img = cv2.imread(fname) imshow(img) リサイズ dst = cv2.resize(img, dsize=None, fx=0.1, fy=0.1) imshow(dst)