Python関連のことを調べてみた2020年09月26日

Python関連のことを調べてみた2020年09月26日

SQLのAS句を、pandas(python)をrenameメソッドを使って表現して見た

#はじめに
 最近、プライベートでデータ分析のツールを作成している関係でpandasというpython外部ライブラリを活用している。が、いざ使って見ると、「pandas?なにそれかわいいの?」と動物のパンダ?を連想させるヤバい思考に行きつつある状況になる。
 これはまずいと感じ、投稿者はpandasを探し求める旅に出る。
 この記事は、pandasを飼いならすためにpandasをSQLっぽく考えるというデータサイエンス初学者に向けた記事となります。

#そもそもpandasとは何か
 pandasとは、構造化された(表形式、多次元、潜在的に不均質)データと時系列データを簡単かつ直感的に操作できるように設計された高速で柔軟な表現力のあるデータ構造を提供するPythonパッケージで、実際的な実世界のデータ分析を行うための基本的な高レベルのビルドを行う事が可能なツールです。
 要は、表データをpythonを使っていい感じに処理して目的のデータ抽出するツールです。

#実践
###準備
今回は下記の表データ【receipt】を用いてpandas攻略を行います。(表デ

元記事を表示

Pythonによる画像処理100本ノック#6 平均プーリング

## はじめに
どうも、らむです。
今回は画像をグリッド分割する手法であるプーリング処理の中でも、領域中の平均値を代表値とする平均プーリングについき実装します。

## 7本目:平均プーリング
プーリングとは画像を固定長の領域にグリッド分割し、その領域内の値を全てある値にする処理です。この処理を施すことで画像はモザイク状になります。
平均プーリングでは領域内の画素値の平均値で領域内を埋めます。

平均プーリングは以下の式によって定義されます。
Rは領域のことで、例えば8×8ピクセルの領域であれば$|R|=8×8=64$になります。

“`math
v = \frac{1}{|R|}\sum_{i \in R}v_i
“`

## ソースコード

“`avePooling.py
import numpy as np
import cv2
import matplotlib.pyplot as plt

def avePooling(img,k):
dst = img.copy()

w,h,c = img.shape
# 中心画素から両端画素までの長さ
size

元記事を表示

初心者がPythonでウェブスクレイピング(4) – 1

今回は[前回](https://qiita.com/inoken0926/items/65be0fabee0752d02658)のスクレイピングプログラムをクラウドに載せて自動実行させることを目指しますが、まずはクラウドにテスト用PGMを載せて、正常稼働させるところまで持っていきます。

#Pythonでのウェブスクレイピング学習のロードマップ
(1)ローカルでとりあえず目的のブツのスクレイピングに成功する。
(2)ローカルでスクレイピングした結果をGoogleスプレッドシートに連携する。
(3)ローカルでcron自動実行を行う。
(4)クラウドサーバー上での無料自動実行に挑戦する。(Google Compute Engine)
  (4)-1 クラウドにテスト用PGMを載せて、CloudShell上で正常稼働させる ←いまココ
  (4)-2 スクレイピングPGMをリポジトリに追加し、CloudShell上で正常稼働させる。
  (4)-3 ComputeEngineのVMインスタンスを作成して、スクレイピングを自動実行させる。

元記事を表示

Django Updateview で更新画面を作成

前回から、社員名と日付は編集してしまうことをできないようにしたいため、いろんなことを試していました。

forms.pyは、まだ一度も使ったことがなく(使い方を勉強していない)数時間調べていたが、うまくいかなかった。

最後に、社員名を渡すためにやったことをスケジュールと同じことをして受け渡せばどうなるのかtと思って試してみたらやっとうまくいきました。

“`python:schedule/views.py
class ScheduleUpdate(UpdateView):
template_name = ‘schedule/update.html’
model = Schedule
fields = (‘user’,’date’, ‘shift_name_1’, ‘shisetsu_name_1’, ‘shift_name_2’, ‘shisetsu_name_2’, ‘shift_name_3’, ‘shisetsu_name_3′,’shift_name_4’, ‘shisetsu_name_4’, ‘day_total_worktime’)
s

元記事を表示

【python-pptx】pythonでPowerPoint のフォント情報をcsvに出力

# 背景
PowerPoint の資料Reviewで一部のフォントが間違っていると指摘をいただきました。
100ページ以上のスライドのどこのフォントが違っているかを、一つずつチェックして修正…。
目検でやりたくなかったですし、これから先も同様の作業をする可能性があるので効率的にできないか…と思いました。

# python-pptx
今の時代 python でできないことなんてないやろ!
調べてみると、python-pptx で python から PowerPoint のファイルが操作できることがわかりました。
公式ページ:[python-pptx](https://python-pptx.readthedocs.io/en/latest/index.html#)

## オブジェクトのイメージ
Qiitaの偉大な先駆者様達の記事を参考に、公式の Getting Start を少し触りました。
なんとなくイメージがついたので、下記にDumpします。
(間違っていたらご指摘をお願いいたします…)

### 全体の俯瞰図
Presentation > slides[] > shapes

元記事を表示

ISO-8601文字列を日本時間に変換したい

# ISO-8601文字列を日本時間に変換したい
`2020-09-25T18:00:00Z` → `2020-09-26 03:00:00`

# Pythonでのプログラム

どう考えてもこんなに長いプログラムが必要ではないはずなんだが……

“`Python
# coding: utf-8
from datetime import datetime, timezone, timedelta
import dateutil.parser

def time_jst(date_str: str):
date_str.replace(‘Z’, ‘+00:00’)
t = dateutil.parser.parse(date_str)
JST = timezone(timedelta(hours=+9))
t_jst = t.astimezone(JST)
ret = t_jst.strftime(“%Y-%m-%d %H:%M:%S”)
return ret

s = ‘2020-09-25T18:00:00Z’
print (tim

元記事を表示

Pythonのdataset(SQLAlchemyのラッパー)のclose系処理を調べる

## 概要

datasetでクローズ処理した時の挙動がいまいちよく分からないので色々試して整理する。

## 環境

4.14.193-149.317.amzn2.x86_64 #1 SMP Thu Sep 3 19:04:44 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Python 3.8.5

下記がpip installされている状態。
dataset 1.3.2
SQLAlchemy 1.3.19
mysqlclient 1.4.6

## 結論

結論からまず先に。。

コネクションプールを残したい時は、closeする必要なし(条件0参照)。

DB切断までやりたい時は、条件6の、

“`
con.executable.invalidate()
con.executable.engine.dispose()
“`

ちなみに、、検証結果の `pool.status()` の数字の意味は雰囲気的に↓かなぁ、、

“`
Pool size: そのまま
Co

元記事を表示

Pythonによる画像処理100本ノック#6 減色処理

## はじめに
どうも、らむです。
今回は画像中の色の数を減らす減色処理を実装します。
ちなみに、前回から一本飛んでいるのはどうしても5本目のHSV変換が実装できなかったからです。

## 6本目:減色処理
減色処理はその名の通り、色の数を減らす処理のことです。
通常の画像ではBGRでそれぞれ[0:255]の256色が存在し、1つの画素値で$256^3 = 16,777,216$色の組み合わせがあります。
今回の処理ではBGRそれぞれに[32,96,160,224]の4色、1つの画素値で$4^3 = 64$色に減色します。

今回、減色は以下の式に従って行います。

“`
pix = { 32 ( 0 <= pix < 64) 96 ( 64 <= pix < 128) 160 (128 <= pix < 192) 224 (192 <= pix < 256) ``` ## ソースコード ```decreaseColor.py import numpy as np import cv2 import matplotlib.p

元記事を表示

ABC128 A,B,C解説(python)

## A問題
https://atcoder.jp/contests/abc128/tasks/abc128_a

“` python
a,p = map(int,input().split())
print((a*3+p)//2)
“`
a×3+pを2で割ったものが答えとなる。

##B問題
https://atcoder.jp/contests/abc128/tasks/abc128_b

“` python
n = int(input())
x = [[input().split(),i+1]for i in range(n)]
x = sorted(x, key = lambda x:(x[0][0],-int(x[0][1])))
for i in range(n):
print(x[i][1])
“`
複数の要素についてソートをかける問題。
x = sorted(x, key = lambda x:(x[0][0],-int(x[0][1])))
でkey を複数指定するとx[0][0]、-int(x[0][1])の順にソートを行う。
出力は番号で行うので

元記事を表示

yukicoder contest 267 参戦記

# yukicoder contest 267 参戦記

A も B も星の数詐欺すぎて.

## [A 1236 長針と短針](https://yukicoder.me/problems/no/1236)

12時間の間に長針と短針は11回巡り合う. 当然巡り合うのは12時間の秒数を11で割った秒数毎である. その秒数を求めると、現在時刻の次のその秒数との差が答えとなる.

“`python
from bisect import bisect_left

A, B = map(int, input().split())

x = [i * 12 * 60 * 60 // 11 for i in range(12)]
t = (A * 60 + B) % (12 * 60) * 60
print(x[bisect_left(x, t)] – t)
“`

## [C 1238 選抜クラス](https://yukicoder.me/problems/no/1238)

K を引いた辺りで、「あれ、同じような問題を過去に解いてるぞ」と思ったのに解けなかった悲しみ. [ABC044C

元記事を表示

toDoListをこなしながら部屋の模様替えが楽しめるPGM

toDoListをこなしながら部屋の模様替えが楽しめるPGM

toDoListを作成し、達成したタスクに応じてポイントを貯めて、そのポイントに応じて
自分自身のアバター装備や家具を市場・アイテムショップから購入し、楽しめる、PythonでのPGMを作成してみました


gitHubURL:https://github.com/NanjoMiyako/toDoListWithImage
実行PGM:toDoListWithImage3.py


実行画面例

![img1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412430/654c8cd8-48dd-c231-211e-4c273361e7bf.jpeg)

![img2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412430/f7c2598d-38a6-7a11-d44a-45ea970a66ae.jpeg)

![img

元記事を表示

Pythonで、日時と時間、秒単位を表すには

### Pythonで学習したこと
Python認定技術者に向けて勉強しています。
実際にコードがどのように役立つかについてですが、
使う人の側にたったコードを試したいです。
### 実践したコード
“`python

import datetime

now = datetime.datetime.now()
print(now)
print(now.isoformat())
print(now.strftime(‘%d/%m/%y-%H%M%S%f’))

today = datetime.date.today()
print(today.isoformat(‘%d/%m/%y’))

t = datetime.time(hour=1, minute=0,second=5,microsecond=100)
print(t)
print(t.isoformat())
print(t.strftime(‘%H%_M_%S_%f’))

print(now)
d = datetime.timedelete(weeks=1)
#d = datetime.timedelete(days=1

元記事を表示

pythonによる【高等学校情報科 情報Ⅰ・情報Ⅱ】教員研修用教材まとめ

#はじめに

高等学校の新しい学習指導要領の共通教科「情報」では、必修科目として「情報Ⅰ」、選択科目として「情報Ⅱ」が定められております。
これに伴い文部科学省のHPにて、「情報Ⅰ」「情報Ⅱ」の教員研修用教材が公開されています。
この教員研修用教材は高校生でなくても情報技術を学ぶ入門テキストとして優れていると思うのですが、実装例の説明に使われている言語としてpythonとRが多く、「情報Ⅰ」の一部領域に限り他の言語(JavaScript,VBA,ドリトル,swift)の記載が載っており、統一感のない印象を受けました。
様々なスキルの教員の指導用や高校生の学習の為に書かれた教材なので、色々な言語で説明するのは良いとは思うのですが、気になる点がございました。

– 「情報Ⅰ」の「コンピュータとプログラミング」の領域では、python,JavaScript,VBA,ドリトル、swiftの実装例での説明があるが、「情報Ⅱ」では、主にpython,Rで説明されている。
– 高等学校における「情報Ⅰ」「情報Ⅱ」の標準単位数は、それぞれ2単位である。教育の専門家でもないので詳しくはわからないが、この

元記事を表示

Codeforces Round #479 (Div. 3) バチャ復習(9/25)

#今回の成績

![スクリーンショット 2020-09-25 14.56.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331393/faa5d770-a6f9-2885-733f-f89f93bf3f09.png)

#今回の感想

E問題が実装ゲーだったのですが、**実装の最終形をイメージせずに無理矢理実装した**らバグらせ続けたので反省しています。
途中で切り替えてF問題に移ったのは良かったですが、方針は完全に合っているのに実装を落とすのは勿体ないのでコドフォのバチャで繰り返し鍛錬を積もうと思います。

#[A問題](https://codeforces.com/contest/977/problem/A)

数を文字列のように捉えて**愚直にシミュレートしていくだけ**です。あまりこのような問題がないので、若干迷っいました。

“`python:A.py
n,k=input().split()
n=[int(i) for i in n]
k=int(k)
for i i

元記事を表示

インスタンスメソッドとクラスメソッドの使い分け

# インスタンスメソッドとクラスメソッドの使い分け
今回は、インスタンスメソッドとクラスメソッドの使い分け方について書いてみます。

# インスタンスメソッド
#### インスタンスごとで挙動を制御したい場合に使用します
* インスタンスを生成しないと呼び出すことができない
* インスタンス名.メソッド名で呼び出すことができる
* 第一引数には`self`を用いる

# クラスメソッド
#### クラス全体で共通の挙動を制御する際に使用します
* インスタンス化しなくてもメソッドを呼び出せる
* クラス名.メソッド名で呼び出すことが可能
* メソッドの一番上に`@classmethod`と付けることで定義する
* クラスメソッドの第一引数は`cls`を用いる

# 学校を例にしたインスタンスメソッドとクラスメソッドの使い分け
“`python:学校
class Class:
# 学校全体の入学者数
all_students_count = 0

def __init__(self, teacher_name, grade, group):
se

元記事を表示

The Power of Pandas: Python

![pandas.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117479/1f946c69-3685-d439-7e30-9a2d577e8f49.jpeg)

###Pandas Basics###
Pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and

元記事を表示

django PasswordChangeFormでエラーメッセージを日本語で出したい

# 問題

djangoにはでパスワード変更画面用のPasswordChangeFormがあって既定のチェック処理も入ってるが入力チェックエラーのメッセージや注釈をを日本語にしたかった。
メッセージの国際化や多言語化などで探したがいい方法に該当しなかったが、それもそのはずsettings.pyの言語設定を変えるだけだった。

うっかり。

というよりdjangoの言語設定すごいな。

同じ間違いに陥った人のために恥を晒しておく。

# 結論

言語設定が英語の場合

“`python:settings.py
LANGUAGE_CODE = ‘en-us’
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224453/11096feb-5796-d1a8-b7df-01ae50616ffa.png)

言語設定が日本語の場合

“`python:setttings.py
LANGUAGE_CODE = ‘ja’
“`

![image.png](https://qiita-i

元記事を表示

Pythonで天気予報botもどきを作ってみた。

#Pythonで天気予報botもどきを作ってみた。
タイトル通りPythonで天気予報botもどきを作ってみました(botではないです)。
天気予報を確認することすらめんどくさがってしまう性格で「LINEで送れたらなー」と思っていた所、既に先人の方達がやっていたので、知恵を借りながら(ほぼパクリながら)作ってみました。
##やったこと
・スクレイピングでYahooの天気情報を取得
・スクレイピングで取得した情報をLINE Notifyで表示
##準備
###必要なライブラリのインストール
“`
$pip install beautifulsoup4
$pip install requests
“`
###トークンの取得
[LINENotify](https://notify-bot.line.me/ja/)でトークンを発行しておきます。
##コード
“`Python
import urllib.request
import requests
from bs4 import BeautifulSoup

line_notify_token = ‘xxxxxxxxxxxxxxxxxx

元記事を表示

Python初学者のためのPandas100本ノック

#はじめに
この度、PythonライブラリであるPandasを効率的に学ぶためのコンテンツとして**「Python初学者のためのPandas100本ノック」**を作成したので公開します。本コンテンツは、**Python3エンジニア 認定データ分析試験の出題内容にも沿っているため、この100本ノックを実施することで資格対策にもなります。**また、ノック終盤には、タイタニック号乗客の生存予測問題もあり、Kaggleなどの機械学習コンペへ参加するための練習にもなります。

![100_knocks.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692165/f3436014-1bda-d843-bc3e-255e1bc5f155.png)

#作成の動機
* 最近、知り合いでPython・機械学習を始める人が増えてきており、そのような人たちに紹介できるコンテンツを自分で作ってみたいと前々から思っていたため。Pandasが使えれば、機械学習まではできなくても、日常のデータ集計・分析業務にも活用できると考え、ま

元記事を表示

VisualStudioCode(vscode)のDefault Dark+テーマでPythonのユーザ関数呼び出しをハイライト表示する

#はじめに
VisualStudioCode(1.49.2)のデフォルトテーマ(Default Dark+)でPythonプログラム(*.py)のユーザ関数呼び出し時の関数名、引数名がハイライト表示されなかったため、「settings.json」に設定を追記する事で、表示可能とした。

#動作イメージ
##設定の追記前
ユーザ関数の呼び出し時の名前(例:print_debug)と引数がハイライト表示されない。
![20200925.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490699/f7e66d24-80b2-b7bb-60bd-ddbb918aa574.png)
##設定の追記後
ハイライト表示される。
![20200925_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490699/9675d8d8-5e18-e13a-c946-baf7d4c63daf.png)

#設定の追記方法
1. VisualS

元記事を表示

OTHERカテゴリの最新記事