- 1. python初心者が食べログをスクレイピングして駅からの距離と評価の関係を調べてみた
- 2. [Python3] 正規表現で、括弧で括ったところの直後を数字に置換
- 3. PyQt5でQTreeViewを使用してファイル名を取得する
- 4. Build a Simple Naïve Text Summarizer
- 5. 【Python】Djangoで遊ぶ(管理画面)
- 6. pyautoguiを使ってタイピングを自動化してみる
- 7. Pythonの引数評価戦略は”参照渡し”ではないと何度でも主張すべきそうすべき
- 8. SQLiteによるデータベースの操作
- 9. PubTatorフォーマットのファイルをspaCyでいい感じにするツール
- 10. wxPythonで色分けができるコードエディタをつくってみる
- 11. [Django] social-auth-app-djangoを用いてGoogle OAuth2ログイン認証をする
- 12. pythonを使って電卓
- 13. コピペで出来る!LambdaとAPI Gatewayを使って簡単にAPIを作る手順
- 14. 【Python】Djangoで遊ぶ(セットアップ・HTMLファイル表示)
- 15. 【忘備録】zip関数の使い方(Python)
- 16. 【忘備録】リスト(配列)に要素を追加するあれこれ(Python)
- 17. kaggle の Courses を読む —Intermediate Machine Learning 7
- 18. Python AWS Lambda でmultipart/form-dataのファイルをS3にアップロードする
- 19. 備忘録:簡易Youtubeクローン作成[バックエンド]
- 20. SwitchBot MeterTH の温度と湿度をPythonで読み取る(Raspberry Pi 4)
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 pltroot_url = ‘https://tabelog.com/tokyo/’ # 食べログURL
[Python3] 正規表現で、括弧で括ったところの直後を数字に置換
**Python 3.7.3** で動作確認
“`python
import reurl = “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”\g 0\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.htmlUIは下記の感じになっています。
![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