Python3関連のことを調べてみた2021年02月23日

Python3関連のことを調べてみた2021年02月23日

python初心者が食べログをスクレイピングして駅からの距離と評価の関係を調べてみた

#目的
スクレイピングをしてみたくてなんとなく思い浮かんだ食べログをスクレイピングしてみます。
仮説として、駅からの距離が近い店は家賃が高いからそれだけ人気を維持しなければいけないから評価が高い店が多いのではないかと思いました。
駅からの距離と評価を抽出して関係を調べてみます。

#環境構築
windows8
anacondaをインストール
python3.7.5

#ソース
食べログの東京にある店でMAXの60ページ分をスクレイピングで取得しています。
1ページに20件の店なので1200件分のお店ですね。
すべての店には駅からの距離が記載されているのですが、1つだけ世田谷とだけしか書かれていない店があったため処理をスキップしています。

“`python:tabeAnalysis.py
import requests
import csv
from bs4 import BeautifulSoup
import re
import matplotlib.pyplot as plt

root_url = ‘https://tabelog.com/tokyo/’ # 食べログURL

元記事を表示

[Python3] 正規表現で、括弧で括ったところの直後を数字に置換

**Python 3.7.3** で動作確認

“`python
import re

url = “https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789”
re.sub(r”(?Phttps://www\.example\.com/aaa/bbb/ccc\?x=123&y=)\d+(?P&z=789)”, r”\g0\g“, url)
# “https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789”
“`

`https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789`
のような文字列の`456`を`0`に変えて、
`https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789`
のようにしたくなりました。

いつもの調子で置換後を`r”\10\2″`と書いたところ、「`\1`と`0`と`\2`」ではなく「`\10`と`\2`」と解釈されたのかエラーが出

元記事を表示

PyQt5でQTreeViewを使用してファイル名を取得する

# これは何

QTreeViewにファイルツリーを表示して、クリックしたファイル名を表示するまでのコードです。

いつも同じことを調べたりコードを確認したりしているので、部品ごとのメモを作成することにしました。

仕上がりは、以下のとおり。

![タイトルなし.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191337/5664fa1a-2f15-f7a3-7317-4ff7adb53b01.gif)

ファイルをクリックするとファイル名のメッセージが表示され、フォルダをクリックするとアラートとなります。

# 環境

– Darwin Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64 i386
– Python 3.9.1 (default, Jan 15 2021, 10:22:19)
– PyQt5 5.15.2

# 手順

– Qt

元記事を表示

Build a Simple Naïve Text Summarizer

Here I’m going to build a very simple text summarizer. It will be a very simple one using statistical modeling.

#### Text Summarization

First, let’s see what is text summarization.
Can you email me the summary of your report?.
Sounds familiar?.

I have to frequently face this question when doing my master’s in Tsukuba.
Many peoples and students have to deal with this when studying and even in a professional environment.

In short, Summarization means that converts original content to a brief

元記事を表示

【Python】Djangoで遊ぶ(管理画面)

#この記事について
前回の記事でDjangoのセットアップをしてました。
[【Python】Djangoで遊ぶ(セットアップ・HTMLファイル表示)](https://qiita.com/666mikoto/items/c097f73403018f611de5)

今回はデフォルトでセットアップされる管理サイト(adminサイト)を少し触れてみます。

#環境
OS:Windows10 Home
Python:3.9.2
Django:3.1.7

#管理サイト(adminサイト)とは
今回はローカル環境“`http://127.0.0.1“`で構築したのですが、何も触ってなくても“`http://127.0.0.1/admin“`にアクセスすると以下のページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250196/a8f63b06-4d77-99ca-d26d-1ba5876e9c59.png)

ただ、ユーザー名・パスワードは分かりません。。
作成してログ

元記事を表示

pyautoguiを使ってタイピングを自動化してみる

# 注意事項

**悪用厳禁!統計を取るような場所で使えばただのチートツールです!**

# 目的

ひょんなことから職場でタイピングが流行っていたので、腕試しとpyautoguiの習得を兼ねて自動化させてみました。

# 自動化対象
## 大まかな方針

ベネッセのタイピング練習のサイト。キーボードの表記があり、外部に成績を送っていないため選定。サイトは下記のとおりです。
https://manabi-gakushu.benesse.ne.jp/gakushu/typing/nihongonyuryoku.html

UIは下記の感じになっています。

![UI(1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395414/b77fe56e-0c92-5cae-2e96-0ea44bd56cd0.png)

タイピングを自動化するのであれば、方法は3つ思いつく。

1. 中央のローマ字をパターンマッチングで取得する。
1. 下部のキーボードの部分を取得し、次にタイプするキーを取得する。
1. 中央

元記事を表示

Pythonの引数評価戦略は”参照渡し”ではないと何度でも主張すべきそうすべき

Google検索すると、いまだにPythonの引数は参照渡しされるとする記事が後を絶たないので注意喚起。

## なんで?

**A. 公式ドキュメントにそう書かれているからです。**

まず、当該部分の原文はこう。

[How do I write a function with output parameters (call by reference)? – Programming FAQ — Python 3.8.8 documentation](https://docs.python.org/3.8/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call-by-reference)

> Remember that arguments are passed by assignment in Python. Since assignment just creates references to objects, there’s no alias between an argu

元記事を表示

SQLiteによるデータベースの操作

SQLiteは非常にお手軽なデータベースです.
軽量でありながらデータベースの操作言語SQLを利用して本格的なデータベース操作が行えるという点に注目が集まっています.
ファイル1つが1つのデータベースであり,組み込み用途でよく利用されています.
Pythonから使う場合,標準ライブラリのsqlite3を利用する宣言だけで使うことができるのもメリット.

例)shuto.sqliteというデータベースに,リンゴやバナナの値段を挿入し,それを抽出する.

“`python
import sqlite3

# sqliteのデータベースに接続
dbpath = “shuto.sqlite”
conn = sqlite3.connect(dbpath)

# テーブルを作成し、データを挿入する
cur = conn.cursor()
cur.executescript(“””
/* itemsテーブルが既にあれば削除する */
DROP TABLE IF EXISTS items;

/* テーブルの作成 */
CREATE TABLE items(
item_id INTEGE

元記事を表示

PubTatorフォーマットのファイルをspaCyでいい感じにするツール

# なんの記事?
Pubtatorフォーマットと呼ばれるフォーマットをいい感じに前処理してくれるツールを作ったので、その紹介記事を書きました。今書いている、[エンティティ・リンキング用チュートリアル](https://qiita.com/izuna385/items/9d658620b9b96b0b4ec9)の後編で使用予定です。

# PubTatorとは?
主に生物医学分野の論文を扱うPubMedが持つ論文に対してアノテーションを付与するツールになります。専門家がアノテーションしやすいような直感的な操作が特徴の一つです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357766/2a8e8ecd-734f-cfc1-6dfc-157c0b8c56a4.png)
(図は[公式](https://www.ncbi.nlm.nih.gov/CBBresearch/Lu/Demo/PubTator/tutorial/index.html)より引用)

実際のアノテーションの結果吐き出され

元記事を表示

wxPythonで色分けができるコードエディタをつくってみる


Google翻訳の質問でてくるけど「今はしない」にしてよ!!

いままでwxPythonでその時に定の文字列に色付けできるコードを探してみました。
wx.TextCtrlでは無理っぽい。特定の文字列に色をつけるコードは考えたけどそれ色付けに時間がかかるのです。それで文字の量が多いと時間がとてもかかって使いものにはならなくなりました。

で、
使えそうなwx.stc.StyledTextCtrlを利用したいと思います。

そして、完成図はこれ!

![スクリーンショット (573).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061021/f9733ee8-e405-0a6a-7f67-0c0b6d305c87.png)

テキストエディタっぽいですね。今回はこれを作成します。

##wx.stc.StyledTextCtrl
このウィジェットはコー

元記事を表示

[Django] social-auth-app-djangoを用いてGoogle OAuth2ログイン認証をする

## はじめに
Googleアカウントを使ったログイン機能がほしかったので作りました。
[social-auth-app-django](https://github.com/python-social-auth/social-app-django)を使うと簡単に作れるみたいなので、ありがたく使わせていただきます!

>今回はGoogleアカウントを使ったログイン機能を作ることに焦点を当てているため、RESTなどはあまり意識していません。

– [Document](https://python-social-auth.readthedocs.io/en/latest/index.html)
– [DocumentのDjangoのページ](https://python-social-auth.readthedocs.io/en/latest/configuration/django.html)

## 前知識
### social-auth-app-djangoとは
– DjangoでOAuth認証を行う時に使うサードパーティ製のパッケージ
– Google, Twitter, Fac

元記事を表示

pythonを使って電卓

pythonでguiを使った電卓の作成(自習用)

“`python:main.py
from tkinter import*
root = Tk()

root.title(‘電卓’)

def clear():
var1.set(“”)

def all_clear():
var1.set(“”)

def func(v):
var1.set(var1.get()+v)

def result():
try:
var1.set(eval(var1.get()))
except SyntaxError:
var1.set(“SyntaxError”)
except ZeroDivisionError:
var1.set(“ZeroDivisionError”)
except NameError:
var1.set(“NameError”)
btn_c = Button(root, text=”C”, command=clear, width=10, height=

元記事を表示

コピペで出来る!LambdaとAPI Gatewayを使って簡単にAPIを作る手順

散々既出ですが、自分の備忘録を兼ねてメモを残しておきます。

## 構成

Webクライアント – API Gateway – Lambda (Python) – S3

S3上にあるjsonオブジェクトを単純に返すだけのシンプルなAPIです。

## S3にjsonを配置する

Bucket名は何でも良いですがグローバルでユニークである必要があるので適当な数字をつけるなど工夫して下さい。
今回は“`test-lambda-api-12345“`としました。(※1)

![b1511a8403885c4bf3f5877875cee810.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229008/717354c4-829d-511b-fe2c-e638aab2eab4.png)

以下のようなjsonを作り、“`hello.json“`という名前でBucket上に保存します。

“`
{
“greeting”: “Hello, World!”
}
“`

![58babbdd034

元記事を表示

【Python】Djangoで遊ぶ(セットアップ・HTMLファイル表示)

#この記事について
最近、PHPのフレームワーク「Laravel」の記事を上げています。
別のフレームワークはどのような感じなのかなと思って、今回はPythonのフレームワーク「Django」を触ってみました。
他のフレームワークも色々触ってみようと思っています。

#環境
OS:Windows10 Home
Python:3.9.2
Django:3.1.7

#Pythonのインストール
Pythonをインストールしてない場合はインストールします。
[インストールサイト]()

今回は最新版(2021/02/20時点)のPython 3.9.2をインストールしてみました。
インストール後、コマンドで楽にPythonを使うために環境変数に以下を追記します。

・~/Python39
・~/Python39/script

#Djangoのインストール
pipを使ってDjangoをインストールします。

“`
pip install django
“`
これで完了です。

#Djangoプロジェクトの作成
次にプロジェクトを作成します。
プロジェクトフォルダをインストールしたいパス

元記事を表示

【忘備録】zip関数の使い方(Python)

#zip()
forループで複数のリストの要素を取得。
要素を同時に取得して使いたい場合は、zip()関数の引数に対象要素を渡す。

“`python
list01 = [“あ”, “い”, “う”, “え”, “お”]
list02 = [1, 2, 3, 4, 5]
for i, j in zip(list01, list02):
print(i, j)

“””
【結果】
あ 1
い 2
う 3
え 4
お 5
“””
“`

それぞれの要素数が異なる場合は**多い方が無視される。**

“`python
list01 = [“あ”, “い”, “う”, “え”, “お”]
list02 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i, j in zip(list01, list02):
print(i, j)

“””
【結果】
あ 1
い 2
う 3
え 4
お 5
“””
“`

#zip_longest()
標準ライブラリitertoolsモジュールのzip_longest()を使うとリストの要素数が異なる場合、任

元記事を表示

【忘備録】リスト(配列)に要素を追加するあれこれ(Python)

#append()
末尾(最後)に要素を追加する。

“`python
list = [“あ”, “い”, “う”, “え”]
list.append(“お”)

print(list)

“””
【結果】[‘あ’, ‘い’, ‘う’, ‘え’, ‘お’]
“””
“`
**※appendメソッドの引数は1つだけ**

“`python
list = [“あ”, “い”, “う”, “え”]
list.append(“お”, “か”)

print(list)

“””
【結果】TypeError: append() takes exactly one argument (2 given)
“””
“`

##リストの末尾にリストを追加

“`python
list = [“あ”, “い”, “う”, “え”]
list.append([“お”, “か”])

print(list)

“””
【結果】[‘あ’, ‘い’, ‘う’, ‘え’, [‘お’, ‘か’]]
“””
“`
#「+=」演算子で要素を追加する
「append()」は1つしか追加できないのに対し、「+=」

元記事を表示

kaggle の Courses を読む —Intermediate Machine Learning 7

# お久しぶりです
こんにちは! まはらせないきと申します!
しばらく休んでいましたが、生きています。
今回が最後の章なので、気張っていきます。

___
__Intermediate Machine Learning__ では、機械学習をより深掘っていきます

~Intermediate Machine Learning の流れ~
1. 導入
2. 欠損値
3. カテゴリー変数
4. パイプライン
5. 交差検証
6. XGBoost
7. データの漏洩

今回は __7__ の内容です!

# データの漏洩
データの漏洩とは、本来なら予測の際にないはずのターゲットの情報が、学習の段階で使われている状況のことです。

このような状況では、学習では高い実力を発揮しますが、モデルを使って予測するとまるでダメになってしまいます。

データの漏洩には、2つ の種類があります。

## 1. ターゲットの漏洩
これは、時系列的に考えて予測の際にはあるはずのないターゲットの情報が、学習で使われている状況です。

例として、ある人が肺炎に罹るかを予測する場合を考えます。
肺炎の抗体を持っているかい

元記事を表示

Python AWS Lambda でmultipart/form-dataのファイルをS3にアップロードする

# Python AWS Lambda でmultipart/form-dataのファイルをS3にアップロードする

##### 概要

AWSのLambda経由でmultipart/form-dataできたものを、S3にアップロードする。

##### 小言
clientでそのままS3に送る実装や、Blob化してファイルを送信しているのはよく見るが、めんどくさいし通常のApiならmultipart/form-dataを利用する方が多く(~~多いと思ってる~~)、なんでClientがApiとLambdaで変更しないといけないか不思議に思ったため。

##### Dependent

– [multipart/form-dataをLambdaで利用する](https://qiita.com/Gma_Gama/items/858f32181ef288ba8d8d)

##### Result

– [レポ](https://github.com/Ntakuya/sam-multiple-form-data-sample/tree/feature/multipart-form)

## TL

元記事を表示

備忘録:簡易Youtubeクローン作成[バックエンド]

#概要
– [DjangoとReactで簡易Youtubeを作る](https://qiita.com/enuii3/items/d0621e6029b7e9b30709)

– [Anacondaでプロジェクトを作成](https://qiita.com/ezaqiita/items/c109d9b8e21a1db42085)

– [バックエンドの作成](https://qiita.com/enuii3/items/1a9da78fdc080fe2adc5)?今ここ

– [フロントエンドの作成](https://qiita.com/drafts/0e9078b6f7ba81a90a53/edit)

#バックエンド(Django)の作成
“`
$ pip install Django
$ pip install djangorestframework
$ pip install djangorestframework-simplejwt==4.1.2 (バージョン4.1.2のjwtを導入)
$ pip install djoser (トークン関係)
$ pip instal

元記事を表示

SwitchBot MeterTH の温度と湿度をPythonで読み取る(Raspberry Pi 4)

#データフォーマット
データフォーマットみて実装できる人はここを見よう
[公式のWiki](https://github.com/OpenWonderLabs/python-host/wiki/Meter-BLE-open-API)に詳しく書かれています。
https://github.com/OpenWonderLabs/python-host/wiki/Meter-BLE-open-API

| Index | Byte[0] | Byte[1] | Byte[2] |Byte[3] |Byte[4] |Byte[5] |
|—|—|—|—|—|—|—|
| Description| **Enc Type Dev Type**
Bit[7]予約済み
Bit[6:0]デバイスタイプ | **Status**
Bit[7:4]予約済み
Bit[3:0]デバイスグループ |**Update UTC Flag Battery**
Bit[7]予約済み
Bit[6:0]バッテリー残量 | **al

元記事を表示

OTHERカテゴリの最新記事