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

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

【Python】Pandasのread_sql_queryでMariaDBからテーブルごと直接データフレームに収納するサンプルコード

# サンプルコード
“`
import numpy as np
import pandas as pd
import pymysql.cursors

connection = pymysql.connect(host=’localhost’,
user=’ユーザー名’,
password=’パスワード’,
db=’データベース名’,
charset=’utf8mb4′,
cursorclass=pymysql.cursors.DictCursor)

sql = “SELECT * from テーブル名;”
df = pd.read_sql_query(sql, connection)
“`
この方法を使うとカラムごとSQLのテーブルを直でDFに収納できる

※なお前提として予めユーザーに該当D

元記事を表示

QGISのグラフィカルモデラーを使ってみた。(ver.3.22)

QGISでの処理を自動化できるのは知ってるけどpythonも初心者だし、いろいろ調べてます。
そこでグラフィカルモデラーというArcGISのモデルビルダーと同じような機能があって、それを使って設計したらそのままpythonスクリプトに書き出せたのでそれを記録しときます。
GISも多少は使ったことある程度の知識は必要なんだろうなとは思います。
あとMacでやってますのでwindowsとは動作が違うかもです。

– グラフィカルモデラーはここ
![スクリーンショット 2022-01-22 10.00.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2514830/0a026858-bae4-f0c6-63de-6fa7379d1096.png)
– こんなウィンドウが立ち上がります。(モデルデザイナー)
![スクリーンショット 2022-01-22 10.01.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2514

元記事を表示

自作モジュールのinit関数を使いたい

#背景
先日、自作モジュールをGitHubにアップして使いました。その時はクラスにして使っていなかったので、init関数を定義していませんでした。

#目的
自作モジュールをクラスで作り、init関数を定義して使いたいと思います。

#方法
先日、GitHubからcloneして、入力と重みとバイアスを引数としてANDゲートとして出力しました。今回はクラスを定義して論理ゲート(ここではANDゲート)をインスタンス化して、同じように出力します。

#結果
以前、GitHubにアップした関数と同じ結果になりました。前回は入力まで引数にしていたので使い勝手が悪いと思っていましたが、インスタンス化する事でANDゲートを作った後、入力をすることができました。

[Colab:GitHubから自作モジュールを使ってみる.ipynb(testの項目に記述してます)](https://colab.research.google.com/drive/1wvyMOe2V8ynwUTiNcsG-OElp2U0fEnDA?usp=sharing)

#考察
今回は、単純パーセプトロンをクラスで定義しました。結果

元記事を表示

【Project Euler】Problem 44: 五角数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 44. 五角数

原文 [Problem 44: Pentagon numbers](https://projecteuler.net/problem=44)

**問題の要約:2つの五角数$P_j$,$P_k$のその和と差がやはり五角数になるものでその$D=|P_k-P_j|$が最小となる$D$を求めよ**

[五角数](https://ja.wikipedia.org/wiki/%E4%BA%94%E8%A7%92%E6%95%B0)に説明あります。一般項は以下の式で表され、逆関数は2番目の式になります。

“`math
P_n = n(3n-1)/2 \\

n = (1 \pm \sqrt{1+24P_n})/6
“`

これをもとに$D=|P_k-P_j|$が最小ということなので**j**を小さい順、*

元記事を表示

【Project Euler】Problem 43: 素数の倍数の部分列

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 43. 素数の倍数の部分列

原文 [Problem 43: Sub-string divisibility](https://projecteuler.net/problem=43)

**問題の要約:10桁のパンデジタル数で$1 \le k \le 7$のとき$k+1,k+2,k+3$**の3桁の数が$k$番目の素数で割り切れる数の合計を求めよ。**

やや問題が分かりずらいですがプログラム的にはシンプルです。

“`python
from itertools import permutations

primes = [2,3,5,7,11,13,17]
dgts = “0123456789”

def divchk(ps):
for k in range(7):
if int(ps[k+1:k+

元記事を表示

【Project Euler】Problem 42: 符号化された三角数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 42. 符号化された三角数

原文 [Problem 42: Coded triangle numbers](https://projecteuler.net/problem=42)

**問題の要約:添付の単語リストを読み込み単語スコアが三角数になるものの数を求めよ**

Google Colabでのファイルの読み込みは「[Problem 22: 名前のスコア](https://qiita.com/masa0599/items/cf9cc7e7f41692d20af4)」を参考にしてください。今回は**p042_words.txt**にファイルをuploadした後のコードになります。また単語の値を返す関数**charcost**, **wordcost**もそのまま使います。

“`python
# triangl

元記事を表示

VaccImageのバイアル計算について

VaccImageについては、

[VaccImage](https://github.com/YohYasushi/VaccImage “VaccImage”)

に記載のとおりです。
ワクチンのバイアル管理を目的としたWebアプリです。Ver1.0.1までは本当にひどいスパゲッティCodeだったんですが、Ver2.0.0ではSQLを駆使し、随分と見通しがよいCodeになりました。
今回はVaccImageについて初回のQiita投稿ということで、バイアル計算について取り上げてみます。

他の先生方がどうしているか知りたいのですが、

元記事を表示

gspreadでオートフィル

 gspreadには色々な関数があり、スプレッドシート上の多くの作業を簡単に実装することができます。しかし残念ながら、専用の関数が用意されていない処理もいくつかあります。今回ターゲットにするオートフィル処理もその一つです。
 そこでこの記事では、オートフィル処理をはじめとして、gspreadに関数化されていない処理を実装する方法を説明します。

# Sheets API上でのオートフィルの扱い
 オートフィルを自動化するための方法は、REST APIとしては提供されています。それがAutoFillRequestというものです。

> **AutoFillRequest**
> Fills in more data based on existing data.[^1]

 このリクエストをGoogle Sheets APIのspreadsheets.batchUpdateメソッドで送出することで、プログラムからオートフィル処理を実現できます。[^2]

## batchUpdateメソッドの詳細
 batchUpdateメソッドの機能は、単にリクエストを送るとそれが実行されるという単純

元記事を表示

Kaggle振り返り NFL Health & Safety – Helmet Assignment

# 初めに
 この記事は昨年開催された「NFL Health & Safety – Helmet Assignment」の内容を振り返るために書いています。最後の約1カ月間だけ参加し、私の結果は、61 / 825 (Solo bronze medal, [Leaderboard](https://www.kaggle.com/c/nfl-health-and-safety-helmet-assignment/leaderboard)
) でした。個人的には ReID の実装を完全に終えることが出来ず、悔しい思いをしたコンペです。手元のテストデータではかなり出来ていたのですが、最終日に Submit するとエラーになりました。あと1日あれば結果はかなり変わっていたと信じています。

Kaggle に [コード](https://www.kaggle.com/ttkagglett/61st-place-solution) を公開しています。ご興味のある方は是非。

![NFL Top.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

Discod.pyを用いてbotでLaTeXを使えるようにする

Pythonの勉強ついでにDiscordのbotを作ってみたいなと思ったのがこのbotの制作のきっかけです。Discord.pyのインストールからプログラム完成まで細かく説明したいと思います。
##1. 使用環境とインストール
OSはWindows10、Pythonのバージョンは3.9.2です。
https://www.python.org/ftp/python/3.9.2/python-3.9.2-amd64.exe

IDEはPyscripterを使用しています。PATHが通っていれば感知してくれるのでおすすめです。
https://sourceforge.net/projects/pyscripter/files/latest/download

Subprocessを用いてpdfcropを用いたりするので、Perlは必ずインストールしてください。
https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi

以下、使用したモジュールです。必要に応じてpip等でインストールをお願い

元記事を表示

小説家になろう ブクマ数予測 ~”伸びる”タイトルとは?~ 3rd place solution & 振り返り

Nishika株式会社が主催[「小説家になろう ブクマ数予測 ~”伸びる”タイトルとは?~」](https://www.nishika.com/competitions/21/summary)コンペに参加しました。本記事で私の取り組みの共有と振り返りをしたいと思います。

## コンペ概要

本コンペでは、日本最大級の小説投稿サイトである[「小説家になろう」](https://syosetu.com/)のデータを用いて、ジャンルや作者名などの関連データから各小説のブックマーク数を予測することをテーマとします。予測対象となるブックマーク数を5段階にビニングし、予測確率とのMulti-class loglossが評価指標とされています。

## コンペ結果

最終ランキングでは参加者575人中3位で入賞させていただきました。
image.gifPython3でpip install uuidしてはいけない件

表題の件、正確に言えばPython2.5以降からですが、
uuidは標準ライブラリとしてバンドルされています。

なのでpip install uuidしてしまうと、

“`
File “/Users/hoge/.pyenv/versions/3.8.0/lib/python3.8/site-packages/pip/_internal/req/req_install.py”, line 9, in
import uuid
File “/Users/hoge/.pyenv/versions/3.8.0/lib/python3.8/site-packages/uuid.py”, line 138
if not 0 <= time_low < 1<<32L: ``` このようなエラーになります。 どうやらこれは2.5以降に標準ライブラリに含まれているモジュールのバックポートのようです。 ##もしインストールしてしまった場合 ``` $ pip uninstall uuid ``` するか、 もしできなければ、ここでいうsite-package

元記事を表示

【Python】jsonからcsv作成【業務自動化】

### 雑務撃退術?

サーバー障害対応スクリプトについて、運用者向けの仕様書を作成するタスク。
ホスト名とログインするために必要な情報を記載した以下のようなjsonファイルがあり、その情報を全て専用のエクセルに貼り付けなければならなかった。
(IPアドレスはもちろん数値である…)

“`json
{
“serverintheruemorgue”: {
“ip_address”: “quoth.the.raven.nevermore”,
“user”: “edgar”,
“password”: “nightpain”
}
}
“`

ホストの数が少なければ手動でコピペして対応できるが、何百個とあると流石に限界である。
Pythonでロジックを組んでなんとか解決できないか考えてみた。

### ?の手を借りてみる

最初はクライアント指定のエクセルに直接出力することも考えたが、同じデータを複数のフォーマットに出力したり、そもそもフォーマットの変更等が発生することを考えると、貼り付けは手動で行う方が汎用性が高いだろうと考え

元記事を表示

Wordle解く

# Wordle
最近ツイッターでGithubの草が生えているみたいなツイートが流れてます。

これは進捗を生んでいるのではなくて、Wordleというゲームで遊んでいます。

Wordleは5文字の英単語を当てるゲームです。

https://www.powerlanguage.co.uk/wordle/

毎日0時に、その日の単語が更新されます。みんなで同じ単語を解くことになるので、何が出たとかはネタバレになります。

最初は[英和辞書検索](https://nmm.blog.jp/hp/tool/dictsearch/dictsearch.html)が便利で、色々やってたんですが、効率化したくなってしまったのでPythonで書きました。

# 効率的な英単語

誰でも思いつくと思いますが、英単語に頻出するアルファベットを使った単語から攻めていくのが良いです。
eが最も多くてqとかzが少ないみたいな話は[シーザー暗号](https://ja.wikipedia.org

元記事を表示

Keycloakを用いたAuthorization Code Grant + PKCE 検証環境構築方法 メモ

* 学習目的でKeycloakを使ったAuthorization Code Grant + PKCE を検証するための環境を構築したためメモとして残しておく。

* **[過去に作成したコード](https://qiita.com/KWS_0901/items/bdf60a725064900eaad1)**を修正して構築する。

* 変更点を主として記述する。
* docker-composeなどの設定ファイルはそのまま利用する。

## main.py修正

* code_verifier・code_challenge生成処理などを追加する。

“`python
import ast
import urllib.parse as parse
import urllib.request as req
import urllib.error as error
import os
import requests
import uvicorn
from fastapi import FastAPI
from starl

元記事を表示

PythonからEpsonプリンタを使うためのライブラリ”pyson_connect”を作成した話

# とつぜんですがPythonを書いているそこのあなた!!!

なんとなくPythonからプリンタを操作したいなって思うときありませんか?ありますよね?**僕はあります。**

シチュエーション的には……

– コマンドラインから印刷かけたいとき
– webサービスに組み込みたいとき
– ラズパイで使えるようにしたい
– 機械学習で使う

……などなど一見ニッチな需要に思えるけど痒いところに手が届かない人は多いのではないのでしょうか。

Epsonには**”Epson Connect”**という便利なサービスがあり、さらに、プリンタを遠隔で操作するためのRestful APIが公式で準備されているのでそちらを使うことによってPythonからプリンタを操作できるようになります。

つまり……
**プリンタードライバー**を**自作できるのです!!!**

## しかし……

Restful APIと日本語ドキュメントがあって実装しやすい反面、毎回api実装するのがまあまあ面倒なので**ライブラリ化**してみました。

**非公式のものなので使用は自己責任で

元記事を表示

【Selenium】同じClassが2つ以上存在した場合に、それらの中から1つだけ抽出する方法

Seleniumでデータスクレイピングをする時に、同じクラス名が複数ある場合最初に1つだけしか取得できないということにハマりました。
今回はその解決策をメモとして保存しておきます。

#今回のケース

“`sample.html

りんご

かき

もも

“`
上記のようなクラス以外に差別化できるものがない場合にどうしたらいいか分からなく時間を使ってしまいました。

#解決策

“`test.py
from selenium import webdriver
from selenium.webdriver.common.by import By

apple = driver.find_elements(By.CLASS_NAME, “food”)
apple = house_year[0].text
peach = driver.find_elements(By.CLASS_NAME, “food”)
peach = house_wi

元記事を表示

【初投稿】初めてのウェブアプリ

#初めてのwebアプリ
新卒研修でPython講座があり、せっかくならpython使って何かwebアプリでも作ってみようと思った大学卒業前の4年生です。
「何かをするには目的を持て」という信念のもとそのアプリでどんな課題を解決したいか考えた結果、「食料廃棄」だと思いつきました。
そこから食料廃棄マッチングプラットフォームなるものをTodoリストっぽく作りました。
Webアプリの名前は「Zerowaste」です。

#仕様
Djangoで作り、Herokuでデプロイするという形で、Boostrapで簡単にデザインしました。

#必要機能
・会員登録
・ログイン
・ログアウト
・食料投稿
とりあえず上記だけで作成しました。
追加の機能はまた、実装したいと思います。

データベースがmediaファイルが必要なのでCloudinary Storageを仕様しております。

#完成品
herokuアプリ丸出しのURLです。
https://zerowaste00.herokuapp.com/

Githubにソースを公開してみるということも初めてしました。
https://github.com/

元記事を表示

Apache Airflow ハンズオン

# はじめに

機械学習パイプラインの構築をするために、Apache Airflow を学習。公式チュートリアルなどで手を動かしてみたが、あまり理解が進まなかったので [The Complete Hands-On Introduction to Apache Airflow](https://www.udemy.com/course/the-complete-hands-on-course-to-master-apache-airflow/) を購入。英語だが字幕もあるしとてもよい教材なので、おすすめ。本記事では、この講座を参考にパイプラインの構築の一連の流れを述べる。

# 環境構築

venv で仮想環境構築した。Apache Airflow のバージョンや依存関係はは [ここ](https://gist.github.com/marclamberti/742efaef5b2d94f44666b0aec020be7c)のものに合わせてある。(2022年1月時点で 2.1.0)

“`bash
$ python3 -m venv sandbox
$ source sandbox/b

元記事を表示

2. FlaskでOpenAPI定義の自動出力、Swagger UIページの作成

[1. Flask 環境構築、簡単なバックエンドサーバー実装](https://qiita.com/YamaguchiRyuta/items/69ab10959767e27b8787)では
エンドポイントの実装の例を挙げてきましたが、ここでFlaskをもう少し簡潔に記述するために [Flask-RESTX](https://flask-restx.readthedocs.io/en/latest/index.html) を導入します。

まずは[Flask-RESTX](https://flask-restx.readthedocs.io/en/latest/index.html)のインストールです。

“`bash
pip install flask-restx
“`

app.pyを編集します。

“`python:app.py
from flask import Flask, request
from flask_restx import Resource, Api

app = Flask(__name__) # ここまでは同じ
api = Api(app) # Fl

元記事を表示

OTHERカテゴリの最新記事