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

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

Jupyter Notebookの使用ブラウザを変更する

# 設定ファイルの作成

Windows10でやっています。

anaconda promptを開いて下記のコードを実行

“`bash
jupyter notebook –generate-config
“`

下記のようにWritingと出たら`jupyter_notebook_config.py`が作成されます。

“`bash
Writing default config to: C:\Users\{ユーザー名}\.jupyter\jupyter_notebook_config.py
“`

Overwriteと表示されたらすでにファイルが存在デフォルト状態に上書きされるので気を付けてください。

“`bash
Overwrite default config to: C:\Users\{ユーザー名}\.jupyter\jupyter_notebook_config.py
“`

# 設定ファイルの編集

作成されたファイルをテキストエディターで開き編集します。

`c.NotebookApp.browser`と検索すると編集したい箇所まで飛べます。
変更したい箇

元記事を表示

Tweepyで出来る事まとめ

# 概要
Tweepyで出来る事をまとめる。

## HomeのTimeline Tweetsを取得
“`python

public_tweets = api.home_timeline()
for tweet in public_tweets:
print(tweet.text)
“`

## あるユーザーのモデルを取得&モデルのメソッドを使用
“`python

user = api.get_user(‘twitter’)
print(user.screen_name)
print(user.followers_count)
for friend in user.friends():
print(friend.screen_name)
“`

### モデルのメソッドの内容
***

## フォロワーを全てフォローする
“`python

for follower in tweepy.Cursor(api.followers).items():
follower.follow()
“`
## ツイートの取得
### 指定した単語を含むツイートを取

元記事を表示

都市鉄道の混雑率調査結果(令和元年度実績)のPDFからデータを抽出して混雑率のランキングを作成

https://www.mlit.go.jp/report/press/tetsudo04_hh_000095.html

から「資料3:最混雑区間における混雑率(2019)(PDF形式)」から混雑率ランキングを作成する

“`
# PDFをダウンロード
wget https://www.mlit.go.jp/report/press/content/001365144.pdf -O data.pdf

# pdfplumberをインストール
pip install pdfplumber
pip install pandas
“`

“`python
import pdfplumber
import pandas as pd

with pdfplumber.open(“data.pdf”) as pdf:

dfs = []

for page in pdf.pages:

table = page.extract_table()

col = [“”.join(i.split()) if i else “線路” for i in

元記事を表示

AtCoder Beginner Contest 174 C問題

AtCoderを始めましたが、ABCのA・B問題はほぼ解ける、C問題は運が良ければ解けるというレベルです。
まずはC問題を難なく解けるというの目標に、まずは過去問のC問題までをどんどんやっていってます。

自力では解けなかった問題を、解説を見て、理解した内容の整理とその結果のコードを書いていきたいと思います。

#問題

https://atcoder.jp/contests/abc174/tasks/abc174_c

>高橋君は K の倍数と 7 が好きです。
>7,77,777,… という数列の中に初めて K の倍数が登場するのは何項目ですか?
>存在しない場合は代わりに -1 を出力してください。

#解けなかった原因
ループで末尾に7を追加して1桁増やしながら、Kで割れたら桁数を出力して終了させればいいかと思ったが、
以下がわからず行き詰まる。

  1. 存在しない場合の判定方法がわからない。
    どこまで7を追加したらもう割り切れる数値が存在しないと判断できるのか
  2. 桁数がどんどん増えていった結果、例えばサンプル3だと1099
元記事を表示

Playwright for PythonをWindows10で動かす

#環境
Windows 10
Python3.9

# インストール
とりあえずPlaywrightをpipでインストール

“`
pip install playwright
“`

一回Playwrightを実行

“`
playwright codegen https://ja.wikipedia.org/
“`

こんな感じでエラーになる。

“`
(node:20312) UnhandledPromiseRejectionWarning: browserType.launch: Failed to launch chromium because executable doesn’t exist at C:\Users\\AppData\Local\ms-
playwright\chromium-854489\chrome-win\chrome.exe
Try re-installing playwright with “npm install playwright”Error
“`

npmでplaywrightをインストールしろとか言われてる

元記事を表示

pythonをソースコードからUbuntuにインストールする

#前置き

pythonをコンパイルする方法について色々記事はあふれているものの、
前提条件の違いでうまくいかず・・・

Ubuntu16.04のクリーンインストール状態から、
インストール完了までをまとめた。これでだいたいうまくいくはず。

#環境

Ubuntu16.04 LTS server (64bit)をインストール直後の状態

#ゴール

最新のpython3.9.2のインストール完了

#環境の最新化

まず、パッケージリストを最新化します。

osoper@ubuntu1604:~$ sudo apt-get update

そして一括アップグレードします

osoper@ubuntu1604:~$ sudo apt-get upgrad

#コンパイル環境を整える
pythonのソースコードのコンパイルに必要なパッケージを導入する

osoper@ubuntu1604:~$ sudo apt install build-essential \
> libbz2-

元記事を表示

pythonでクレカの確定明細から確定金額をLINEに通知する

#目的
パートナーがいる方は共有でかかったお金をなんらかの形で管理しているかと思います。
今回はJCBのクレジットカード当月確定分の金額をLINEに送信するというプログラムを作成しました。

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

#ソース
ソースの説明をすると、
まずPhantomJSと呼ばれるプログラム上でブラウザの実行ができる環境を利用しています。
そしてブラウザの操作の部分はseleniumと呼ばれるライブラリを使用しています。

PhantomJSとseleniumでブラウザ操作してMYJCB画面の当月確定分の金額を取得して、
LINEのNotifyにリクエストを投げています。

これを毎月決まった日にいちいちログインせずとも自動実行させてかかった金額をパートナーに教えてあげられます。

```python:kurekameisai.py
# -*- coding: utf-8 -*-
import urllib.request
from selenium import webdriver
import time
from se

元記事を表示

jupyter notebook使用時に「The kernel appears to have died. It will restart automatically.」というエラーが出た時の対処

# エラーが出た状況
### 環境
macOS Big Sur 11.2
Python 3.7.3
numpy-1.16.2
pandas-0.24.2
matplotlib-3.0.3
Pillow-5.4.1
### ソースコード
Kaggleのコンペの問題に取り組む為にjupyter notebookを起動し、必要なライブラリのインポートのために以下のコードを実行しました。

```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
```

すると、以下のエラーが発生してしまいました。

```
The kernel appears to have died. It will restart automatically.
```

コードセルの `In[]` の部分は `In[*]` となっているため、正常に実行できていない様子。

# 対処
各ライブラリのバージョンをアップグレードすることで、エラーが解消しました。

numpyのアッ

元記事を表示

Python3.9でread_excel()を記述するとエラーになる件

Widnws10 Pro
Python 3.9

Pythonでエクセルを操作してするコードを書いた。
以下のエラーが発生した
```

```
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported

````
[pandas+xlrdでxlsxを開こうとするとxlrd.biffh.XLRDError: Excel xlsx file; not supportedのエラーが出る ](https://heppoco-cto.com/pandasxlrd%E3%81%A7xlsx%E3%82%92%E9%96%8B%E3%81%93%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8xlrd-biffh-xlrderror-excel-xlsx-file-not-supported%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%

元記事を表示

"STOP: TOTAL NO. of ITERATIONS REACHED LIMIT."の解決法

#はじめに
Pythonでロジスティック回帰(LogisticRegression)を用いた時,一応実行はできるが以下のような警告文が発生することがあった.

```python:Python
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)
logreg = LogisticRegression()
logreg.fit(X_train,y_train)
print("Test score: {:.2f}".format(logreg.score(X_test,y_test)))
```
**警告内容**

```python
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
```
#解決法
原因は,LogisticRegressionの最大反復回数

元記事を表示

【実践編】Discord.py Botを作ってみる

こんにちは Taitaitatata(Taitaitatata418#5407)です。
Botって便利ですよね。「MEE6」とか「顔文字で返してくるうざいBot」とか、
そいうやつ作ってみませんか?
この記事はDiscord.pyを使ってBotを作るという記事です。
**この記事はとりあえず作ってみたい人向けの記事です**
#はじめに
この記事は前回の[記事](https://qiita.com/taitaitatata/items/1039dc1786bf27c3def9)読んでいる前提で作っています。読んでいない方はまずそっちを読んでからこの記事をお読みください。

また今回使う言語はPython3.8.6です。
[.NET(C#)](https://qiita.com/tags/discord.net)や[Java](https://qiita.com/search?q=Discord+Java), ruby, [Javascript](https://qiita.com/tags/discord.js)ではありません.

癒やし動画((((((は?:https://www.yo

元記事を表示

気象関係でよく見るカラーマップをmatplotlibで再現する

# 気象関係でよく見るカラーマップをmatplotlibで再現する

## はじめに

matplotlibで気象関係の図を描くときに、カラーマップをmatplotlib搭載のものではなく、grads標準のものや気象庁で公開されているものに合わせたいことがある。

本記事では以下のような感じでそれらのカラーマップを自作して、matplotlibでも同様の配色の図を作成できるようにする。

![intro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257782/c0b0347e-af13-b112-6bce-9afb11853b46.png)

## 環境

python 3.7.8
matplotlib 3.3.2
numpy 1.19.2
cartopy 0.18.0 緯度経度座標でのプロットに利用
xarray 0.16.1 netcdfデータの読み込みに利用

プログラムの実行はjupyterlabで行った

## 自作のカラーマップを作る

カラーマップ作成に必要なモジュールのインポート

元記事を表示

Python の関数定義・関数適用の記法、決定版

> Status: 仮引数リストと実引数リストについては書いた。あとは関数適用時の名前の束縛について書く。

# はじめに

Python の関数定義・関数適用はやや特殊であるが、完全な仕様については意外と書かれていないのでまとめる。
主に **引数リストをどう指定するか** に注目して説明する。

# 対象バージョン

Python 3.9

# 参考文献

Python 3.9.2 Documentation

- 用語集 - parameter: https://docs.python.org/ja/3/glossary.html#term-parameter
- What's New In Python 3.8 - 位置専用引数: https://docs.python.org/ja/3.9/whatsnew/3.8.html#positional-only-parameters
- Python 言語リファレンス - 6.3.4. 呼び出し (call): https://docs.python.org/ja/3/reference/expressions.html#call

元記事を表示

numpyでシフト演算を使って符号無し⇒符号有りに変換する

# TL;DR
numpyの符号無しのndarrayをシフト演算を使って符号有りに変換する方法の紹介です.

# numpyのシフト演算
numpyは要素毎にシフト演算することができる.
シフト演算も例外できる.

```python
>>> import numpy as np
>>> val = np.arange(5)
>>> val
array([0, 1, 2, 3, 4])
>>> val << 4 array([ 0, 16, 32, 48, 64], dtype=int32) >>> val >> 1
array([0, 0, 1, 1, 2], dtype=int32)
```

# 符号無し => 符号有りに変換
## astype
astype関数を使って符号無しから符号有りに変換することはできる.
8bitであれば,uint8からint8に変換すれば問題ない(16bit/32bit/64bitも同様).

```python
>>> import numpy as np
>>> val = np.asarray([255, 0, 127, 128], dtype

元記事を表示

zipの中のフォルダ名一覧をCSVで取得

# 環境

OS: Windows10
ツール: Google Colaboratory
Python ver: 3.7.10
※Colabのバージョン

特にOSが違う場合はでコード部分の引数は変わると思うので気を付けてください。

# コード

```python:コード
import zipfile
import pandas as pd
from google.colab import files
uploaded = files.upload()

file_name = list(uploaded)[0]
ary = []
with zipfile.ZipFile(file_name) as z:
for info in z.infolist():
info.filename = info.filename.encode('cp437').decode('cp932')
ary.append([info])

df = pd.DataFrame(ary)

file_name = file_name.replace('zip', 'csv

元記事を表示

DjangoのWebアプリをデプロイする前のセキュリティチェックと修正

# 導入
`python manage.py check --deploy`でデプロイ時にどんなセキュリティ脆弱性があるかを示してくれる。

```
$ python manage.py check --deploy
System check identified some issues:

WARNINGS:
?: (security.W004) You have not set a value for the SECURE_HSTS_SECONDS setting. If your entire site is served only over SSL, you may want to consider setting a value and enabling HTTP Strict Transport Security. Be sure to read the documentation first; enabling HSTS carelessly can cause serious, irreversible problems.
?: (security.W006) Your

元記事を表示

Python3.7のWikiExtractor3.0.4で起こるImportError: attempted relative import with no known parent packageを解決する

##概要
Wikipediaのデータセットから文章を抽出しようとした際に

```
Import: attemted relative import with no known parent package
```
上記のエラーが起こりました。
ちなみに、[Pythonのクローリング&スクレイピングの解説書](URL https://gihyo.jp/book/2019/978-4-297-10738-3)の5.1.1「Wikipediaのデータセットから文章を抽出する」をやっている最中に躓いたので、上記の本で詰まった方の参考にもなるかもしれません。

##経緯
まず、WikiExtractorをダウンロード。

```
$ git clone https://github.com/attardi/wikiextractor.git
```

WIkipediaのデータセットから文章を抽出

```
$ python wikiextractor/wikiextractor/WikiExtractor.py --no-templates -o <出力先のディレクトリ> -b <分割す

元記事を表示

[デイリーコーディング]リスト内の数値の正の数、負の数、ゼロそれぞれの割合を表示する

# 今日の問題: リスト内に入っている整数の正の数、負の数、ゼロそれぞれ合計し、リスト全体から見た各割合を出せ(小数点6桁四捨五入)

```python:回答
def plusMinus(arr):
size = len(arr)
plus = [i for i in arr if i > 0]
minus = [i for i in arr if i < 0] zero = [i for i in arr if i is 0] print('{:.6g}'.format(len(plus) / size)) print('{:.6g}'.format(len(minus) / size)) print('{:.6g}'.format(len(zero) / size)) if __name__ == '__main__': arr = [-4, 3, -9, 0, 4, 1] plusMinus(arr) ``` ```python:結果 0.5 0.333333 0.166667 ``` ベターな回答: ```python de

元記事を表示

Nintendo Switchの画像をひとつのディレクトリに集結させたい

おうち時間の増加によってさらなる売上を伸ばしているらしい[ニンテンドースイッチ](https://www.nintendo.co.jp/hardware/switch/)。

ゲーム画面のスクリーンショットをワンタッチで撮影することができるボタンを備えていて、撮影した写真をスマホに送ったり、直接SNSに投稿したりすることができます。

# 前提

## 画像のディレクトリ構成

画像は本体またはSDカードに保存されますが、SDカードをPCに差し込んで中を除くと以下のようなディレクトリ構成になっていることがわかります。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59926/7e6b0552-7058-364d-88ab-856133c730de.png)
**年 / 月 / 日 / 年月日時間_xxxxxxxxx.jpg**

### メリット

- 画像が撮影日ごとになっているのは単純にわかりやすい
- 「ああ、この時こんなソフトで遊んでたなあ」と思い出に更けやすい

### デメ

元記事を表示

paiza D「一番小さい値」でのミス例(python)

〈ミス1〉

```python
input_line = list(map(int,input().split()))
print(min(input_line))
```
出力 10
エラー なし

〈ミス2〉

```python
try:
N = int(input())
a = []

except EOFError:
pass

for i in range(N):
a.append(int(input()))
print(a)
```
出力 なし
エラー Runtime error
Traceback (most recent call last):
File "Main.py", line 12, in
a.append(int(input()))
EOFError: EOF when reading a line

元記事を表示

OTHERカテゴリの最新記事