Python関連のことを調べてみた2022年11月22日

Python関連のことを調べてみた2022年11月22日

PythonでModuleNotFoundErrorが出た時の対処

# はじめに
Anacondaで環境を構築し、作成先のディレクトリを変更した際に遭遇した事象についてです。
ライブラリをインストールしているはずなのに、「ModuleNotFoundError」が出てしまうという事象で、それの解決方法を記載します。

# 事象発生前にやっていたこと
まず、以下の流れで環境構築を行いました。
① Anacondaの仮想環境作成先ディレクトリを「C:\work\Python\envs」
② 作成したディレクトリに仮想環境「C:\work\Python\envs\getAmazon」を作成
③ プログラムファイル保存先として「C:\work\PRG\Python\getAmazon\src」を作成
④ VSCodeで②で作成した環境を使用するようにし、「print(‘Hello’)」が出力されるところまで確認
⑤ 「conda install selenium」でseleniumをインストール
⑥ 「from selenium import webdriver」を記述したソースを実行
 →ここで「ModuleNotFoundError」が発生。。。

# 原

元記事を表示

算術演算

# 各プログラミング言語の算術演算

加減乗除の四則演算は大概同じなのですが、剰余が演算子が異なったり、インクリメント、ビット演算の有無などが演算子に影響を与えているパターンがあるので、個人的に整理しておきたいな・・・と。
誤植や追記がございましたら、ご連絡お願い致します。

|プログラミング言語|加算(和)|減算(差)|乗算(積)|除算(商)|剰余(余)|累乗|インクリメント|ビット演算|
| :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: |
|Excel | + | – | * | / |MOD()|^
POWER() |無|有|
|VBA | + | – | * | / |MOD()|^
POWER() |有|有|
|VB.net| + | – | * | / |MOD()|^
POWER() |有|有|
|C | + | – | * | / | % |math.hのpow()|有|有|
|C++ | + | – | * | / | % |mat

元記事を表示

Python/Anacondaで仮想環境の作成パスを変更

# はじめに
Anacondaを利用してPythonの環境構築するにあたり、パスを変更してみました。
その際にちょっとつまった点があるので、そのまとめになります。
※Anacondaはインストールされている前提です。

# 仮想環境作成パスを変更
作成パスは環境変数を変更するだけでOKです。
※今回は「C:\work\Python\envs」に作りたいと思います。

|変数 |値 |
|—|—|
|CONDA_ENVS_PATH |C:\work\Python\envs |

これで仮想環境は、指定したパスに作成されるようになります。

ちなみに、VSCodeで仮想環境を指定する際は、画面右下部分をクリックすると変更できます。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1008719/70c5335a-89ef-f011-abe1-b29af527603a.png)

# PYTHONPATHの設定
先ほどの変更のみで簡単なソース程度なら実行できますが、まだ少し足りません。

元記事を表示

[Python]timeitで処理時間を計測してみた

# はじめに
– 今回はPython標準ライブラリのtimeitモジュールを使って、プログラムの処理時間を計測してみたいと思います。
– 動作環境
– Python 3.11.0
– macOS Ventura

# timeitとは
timeitはPython標準ライブラリのモジュールで、小さなコードの計測に便利です。

timeitモジュールは、コードの一部を指定した回数だけ実行することで、その処理速度を計測して、平均処理時間を計測できます。また、デフォルトでは計測中、一時的にガベージコレクションを無効にすることで、個々の計測結果がより比較しやすくなります。

timeitを使って以下の3つのやり方で処理時間を計測してみます。
– pyファイル内で計測
– コマンドラインで計測
– 対話モードで計測

※処理時間は実行するマシンの性能によって異なる場合があります。

# pyファイル内で計測
## timeit.timeit()
“`python
import timeit

timeit.timeit(stmt=’pass’, setup=’pass’, tim

元記事を表示

PySimpleGUIでGUIツール作成~Plotlyで月間支出グラフを出力してみよう

![Python演習スライド.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/15515b6a-eb23-0251-0565-064bc72c174c.jpeg)
Pythonを使ったグラフ表示の方法として、matplotlibやフレームワークなどを使ったことがある方もいらっしゃると思います。データを視覚化することで現状の課題に対するフィードバックがしやすくなる為、前向きにデータ活用していきたいものですよね。(小さい規模での)導入作業を繰り返し行うことで、周囲に合意を得られる形で情報が共有され、実際に導入実績につながるということもあるのかもしれません。

今回は、GUIツールで「取り込んだExcel(csv)ファイルを操作し、PDFファイルでグラフ表示する」方法について確認していきます。ライブラリには

GUI:PySimpleGUI / グラフ表示:Plotly /PDF出力:kaleido を使用します。

ライブラリを用いてデータを読み書き

元記事を表示

Pythonの仮引数の扱いの注意点を可視化してみた

# Pythonの仮引数の扱いの注意点
注意すべきは、仮引数のデフォルト値として、リストなどを指定した時だ。
定義する関数内でその変数に書き込みをすると、2度目以降にその影響が残る。

この動作を理解するポイントは、def文による関数定義は、perlの関数定義のような宣言文ではなく、pythonでは実行文だということだ。
実行文であるゆえに、デフォルト値の生成は、def文の実行時に行われる。関数呼び出し時にデフォルト値が生成されるわけではない。

# ロジックを可視化したもの
Python Tutor code visializerで、このロジックを示す例を可視化した。
それを見るには、下記リンクをクリックして欲しい。

https://pythontutor.com/render.html#code=def%20func%28a,b%3D%5B1%5D%29%3A%0A%20%20%20%20c%20%3D%20a%2Bb%5B0%5D%0A%20%20%20%20b%5B0%5D%3D3%0A%20%20%20%20return%20c%0A%0Afunc%281%29%0Afun

元記事を表示

【ショートコーディング】Pythonの三項演算子の周辺

# Pythonの三項演算子の代用について

今回は、Pythonでのショートコーディングで三項演算子に相当する処理をどう書くと短く書けるのかを考えていきます。

## Pythonの三項演算子

“`Python
z = x if b else y
“`

## 三項演算子の例

“`Python
z = x if n==10 else y
“`

# 三項演算子なしで書く

Pythonではbool型はTruthy(True相当)の時に1、Falsy(False相当)で0として扱われるので、次のように書いたほうが短くてわかりやすいと思います。

“`Python
z = [y,x][n==10]
“`

そう考えるとPythonの前述のようにif elseで書く形は長ったらしいし、見づらいし、あまり嬉しくない文法であるように思います。

# list構築時の副作用

しかし、listは構築時に評価(実行)されるため、次のようにx,yが関数である場合は、意図通りになりません。

“`Python
z = [x(1),y(2)][n==10]
“`

“`Python

元記事を表示

Pandasデータフレームのカラムにmapメソッドを適用して'()’を置換する

Pandasデータフレームの文字列の中にある「()」を削除するのに意外と手間取ったのでメモしておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982344/aaac507c-fcca-185b-3ea3-547c5eeedc38.png)
このtitle列の中にある「()」を削除したい。場所は先頭だったり真ん中だったり。これがなぜか、
videos_report[‘title’].str.replace(…では置換できない。
他に消したくない丸括弧もあるので、左括弧と右括弧を別々に置換するわけにもいかず。
どうすればよいか…

“`python
# 最後に残った'()’を削除する
videos_report[‘title’] =videos_report[‘title’].map(lambda x: x.replace(‘()’, ‘ ‘))
videos_report
“`
このようにmapメソッドとlambdaで、置換できる。

lambda 入力:出力

元記事を表示

pyinstallerで作成した実行ファイルだとpydrive2が失敗する

# 環境

– Windows10
– poetry: `Poetry (version 1.2.2)`
– pyinstaller: `5.6.2`

# 問題

– 通常環境だと成功するが、pyinstallerで作成した実行ファイルだと以下のエラーが発生
– `googleapiclient.errors.UnknownApiNameOrVersion: name: drive version: v2`

# 解決の経緯

– `google-api-python-client` が原因かと思ったが関係なかった
– もう少し調べると、Githubのissueを発見し、解決
– [gdrive: raises unexpected error – name: drive version: v2 (again) · Issue #7949 · iterative/dvc](http

元記事を表示

JIS G5502球状黒鉛鋳鉄品の黒鉛球状化率の測定ソフトを作ってみた

2022年の4月にJIS G5502が改正され、これに伴って黒鉛球状化率の測定方法がJIS法とISO法という方法に変わりましたので、これらの方法で黒鉛球状化率を評価するソフトをPython+OpenCVで作ってみました。以下のURLに入っています。ご参考になれば幸いです。

https://github.com/repositoryfiles/Nodularity

元記事を表示

read_csvが遅い時対策

こんにちは!
新米データサイエンティストのぽむです。

今日、会社で10GBくらいのcsvファイルをpandasで読み込もうとしました。
しかし、待てど暮らせど読み込みが終わらない…
これではお仕事にならないので、読み込み速度を速める方法を調べました。共有します!

# ①dtype引数の指定
read_csvにはdtypeを指定する引数があります。
例えば、下記のコードのようにカラムごとに設定できます。
“`
import pandas as pd
pd.read_csv(file_path, dtype={“カラム名1”: float, “カラム名2”: int})
“`
これをやるだけで、30分以上かかっていた読み込みが2分になりました?

# ②読み込みたいカラムだけを指定する
csvファイルの中身を見ると、分析には使えないカラムもたくさんありました。
そこでread_csvのusecols引数で読み込みたいカラムだけを指定しました。
“`
import pandas as pd
pd.read_csv(file_path, usecols=[“カラム名1”, “カラ

元記事を表示

The Lambda Function Returned An Error.の原因

## 背景
Amazon ConnectからLambdaを呼んでDynamoDBに値を保存する事を実現する上で注意する必要のある事を残しておく

## 起きうる現象
### 1. Roleの設定ミス
必要に応じて、設定>アクセス制限>実行ロールからロールを作成して付与してあげる必要がある。

### 2. returnでstatusCode:200を返していない事によるLambdaの失敗
下記エラーが発生する要因の一つとして、
“`
The Lambda Function Returned An Error.
“`
下記のようにreturn分で200を返していない事が挙げられる。
※[こちら](https://dev.classmethod.jp/articles/amazon-connect-calling-lambda-and-subscribe-lambda/ “クラスメソッド”)にも記載がある。
“`
return {
‘statusCode’: 200
};
“`

元記事を表示

request-html の有益なリンク

requests-htmlの有益なリンク。基本的な使い方。
https://blog.ikedaosushi.com/entry/2019/09/15/162445

元記事を表示

【学習記録】Pythonを使ったアルゴリズムの学習

## 入力された2つの値の総和を求めるプログラムを作成せよ

~~~ python:自分の回答
num1 = input(“好きな整数を入力してください”)
num2 = input(“好きな整数をもう一つ入力してください”)

print(num1, “と”, num2, “が入力されました。”)
print(“入力された整数の合計は”, int(num1) + int(num2), “です。”)
~~~

~~~:出力結果
4 と 8 が入力されました。
入力された整数の合計は 12 です。
~~~

~~~ python:模範解答
# リスト内包表記:既存のリストから取り出した要素に対し処理
# [xの処理 for x in 配列など]
# 2つの整数を空白で区切り、文字列として受け取る A, B, C = input().split()
# int(x):データ型の変換、文字列 → 整数
num1,num2=(int(x) for x in input(“空白を開けて整数を2つ入力して下さい”).split())
print(num1 + num2)
~~~

~~~ :出力結

元記事を表示

「うわっ…理想の賃貸、相場高すぎ…?」アプリを作ってみた。

こちらの記事をご覧いただきありがとうございます。
~~うわっ私の年収、低すぎ…?のネタってもう古いよな…?~~

SUUMOの物件情報について機械学習モデルを使っていろいろ調べていました。
この度は機械学習モデルをweb上で動かし、物件の条件を入力すると家賃相場を予測してくれるアプリを作りました。
アプリ開発についてはまだまだ勉強中なので大したものではありませんが、ぜひ使ってみてください。

# 「うわっ…理想の賃貸、相場高すぎ…?」アプリの概要

↓のurlから利用できます。

https://predict-rent-tomyu.herokuapp.com/

↓こんな感じの画面が出てきます。

predict-rent_app.png

フォームに理想的な条件を入れると…

オンライン部活をITでサポートするWebアプリ【 2画面動作解析アプリ:Pre-Post 】の開発<2>

## 「未来のブカツ」「オンライン部活」について

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352554/a082e134-865c-1326-95be-0a745e55b97d.png)

いやぁ… 子供達に限定するつもりではないんですが。

先日、「Webアプリ【 2画面動作解析アプリ:Pre-Post 】」で連携させていただいている企業から、プレスリリースがあったんですかね? 詳しくは知らないんですが…
でも、開発に携わっている中でやはり「**未来のブカツ**」や「**オンライン部活**」というワードは、ちょいちょい耳にします。

・ [「未来のブカツ」ビジョン(概要版)](https://www.meti.go.jp/shingikai/mono_info_service/chiiki_sports_club/pdf/20220928_2.pdf)
・ [STEAM Sportsがオンライン部活を実現する! …](https://www.zaikei.co.jp/r

元記事を表示

PythonでVantageのデータを取得する

[Teradata® Package for Python Function Reference](https://docs.teradata.com/r/Teradata-Package-for-Python-Function-Reference/April-2022) [リリース番号:17.10 リリース日付:2022/4]の翻訳です。

# はじめに
PythonでVantageのデータを取得する方法を説明します。
ライブラリとして[teradataml](https://pypi.org/project/teradataml/)を利用します。

:::note info
**teradataml**はTeradata Vantage用のPythonライブラリです。
:::

# 基本操作
## Vantageに接続する
“`python:python code
# 接続用ライブラリの宣言
import teradataml as tdml
# データベース接続
tdml.create_context(host = “IPアドレス”,username=’ユーザ名’,passwo

元記事を表示

【Python】threadingによる並列処理(非同期処理)

# 【Python】threadingによる並列処理(非同期処理)

## 並列処理コード
ParallelProcessingに並列処理を行いたい関数とスレッドを跨ぐたびに引数を更新する関数を入れる。
functionとupdateでそれらを記述する。

“`python:sample_threading.py
from threading import Timer
import time

# 並列処理を行うClass
class ParallelProcessing(Timer):
def __init__(self, interval, function, update, args={}, kwargs={}):
# Timerクラスのメンバー関数を呼び出して展開している
Timer.__init__(self, interval, self.run, args, kwargs)
self.thread = None
self.function = function
self.update = update
self.fun

元記事を表示

RustPythonの紹介

## はじめに

RustPythonの紹介記事です。
ソースコードを読んでRustPythonがどのように実装されているかも調べました。

## RustPythonとは

RustPythonとはその名の通りRustで実装されたPythonインタプリタです。
以下の特徴があります。

* Rustで書いたプログラムにPythonを組み込める

* WebAssemblyにコンパイルすることでWeb上でPythonコードが実行できる

## インストール

Rustを最新版に更新します。

“`
$ rustup install stable
“`

以下のコマンドを実行します。

“`
$ cargo install –git https://github.com/RustPython/RustPython
“`

Windowsの場合は環境変数`RUSTPYTHONPATH`を追加する必要があります。
自分の環境では以下の値を設定しました。

“`
%USERPROFILE%\.cargo\git\checkouts\rustpython-f8ef4d934ac33c

元記事を表示

Python学習#1

Pythonで学んだことをアウトプットすることにしました。
まずは1日目。

環境は
– VS code
– Python3.9.12
– M1 Mac たまにWindows

だいたいこんな感じです…
学習は基本的にインターネット、書籍の独学です。
今日は辞書型、for文のzip,enumerate,tqdmについて学びました。
基本的なことですがしっかりと理解をしておきたいので復習です。
調べたり解説を見たりしているとまだまだ自分のものにないと実感、、、

# 辞書から
“`Python
x = {‘apple’:120,’orange’:200,’painapple’:500}
apple_price = x[apple]
“`
辞書の値を取り出せる
“`Python
x = {‘apple’:120,’orange’:200,’painapple’:500}
x[apple] = 150
“`
keyのappleに対しての値の書き換え
“`Python
x = {‘apple’:120,’orange’:200,’painapple’:500}
y = {‘tomat

元記事を表示

OTHERカテゴリの最新記事