- 1. pandasでpivot_tableしつつグループごとにdescribeで統計量を見たい
- 2. GoogleDriveのラージ、スモール共有ファイルをGET(Python日本語習作)
- 3. Flaskでファイルのダウンロード・アップロードを実装してみた
- 4. Ubuntu 18.04でpip install しようとすると”ModuleNotFoundError: No module named ‘pip._internal’が出る。
- 5. 【Python】文字列のリストから別のリストの要素を含む文字列を抽出する方法
- 6. neovimのLSPによるpythonの補完で、opencvが正常に補完が効かない
- 7. Pythonデータベースプログラミングを学習したのでまとめ
- 8. numpyでargsortの逆操作を行う配列を (sort1回のみで) 簡潔に得る
- 9. Python3 模擬試験のミス問題を調べて理解を深める3
- 10. numpyで第一要素でSortし,同一値の場合は第二要素でSortする方法
- 11. CヘッダからPython向けバインディングを自動生成してDLLから関数を呼び出す方法
- 12. Webdriver managerを使用していても、Google Chrome のバージョンをサポートしていないとメッセージが出た場合の対処方法
- 13. D社のコーディングテストを私の勝手に解いてみました!
- 14. functools.lru_cacheに有効期限があると便利だよね。
- 15. Macにpyenv/Python3/pipのインストール
- 16. py-cordのUI KITを使ってボタンやドロップダウンメニューを実装する方法
- 17. 【CentOS 7 / pyenv】サーバー環境のPythonバージョンアップデート
- 18. 初心者のためのPython Tip #1-Input編
- 19. 【Flask】url_forを使用して画像ファイルを表示する方法
- 20. django+nginx+uwsgiの環境構築
pandasでpivot_tableしつつグループごとにdescribeで統計量を見たい
# はじめに
pandasの`describe()`はとっても便利だけど、`groupby`とか`pivot_table`とかで、任意のグループごとにdescribe()して統計量をパパっと見ることはできないものか?# pandasの`describe`とは?
データ数、平均、標準偏差、四分位点をさっと調べてくれます
“`py
import pandas as pd
import seaborn as sns
df=sns.load_dataset(“iris”)
df.describe()#sepal_length sepal_width petal_length petal_width
#count 150.000000 150.000000 150.000000 150.000000
#mean 5.843333 3.057333 3.758000 1.199333
#std 0.828066 0.435866 1.765298 0.762238
#min 4.300000 2.000000 1.000000 0.100000
#25% 5.100000 2.80000
GoogleDriveのラージ、スモール共有ファイルをGET(Python日本語習作)
# 過去記事でBashだけでやったものをPython関数化
[過去記事](https://qiita.com/engbJapan/items/829ac9be3df50d9ae96f )にて、Bashで強引にGoogleDriveのラージファイルだけを、取得する手順にて判断が出来ない物を同じくしたら、エラーを吐きました。
そのため、Python関数化にチャレンジした習作です。利用した機能(記法):
.[open](https://docs.python.org/ja/3.7/library/functions.html?highlight=open#open)
.[shlex.split](https://docs.python.org/ja/3.7/library/shlex.html )
.[subpurocess.Popen](https://docs.python.org/ja/3.7/library/subprocess.html?highlight=subprocess#popen-objects )
.[フォーマット済みリテラル「fで始まる変数を組み入れている箇所」]
Flaskでファイルのダウンロード・アップロードを実装してみた
Flaskでファイルのやり取りができる方法を調べてみたので、忘れないようにメモを残します。
# ファイルのダウンロード
下のプログラムは、クライアントでのブラウザのURL欄に`http://[サーバのIPアドレス]/xxx.bin`と入れると、サーバにある`yyy.bin`というファイルをダウンロードし、クライアント上に`zzz.bin`という名前で保存する、という動作を行います。
“`:ファイル構成
.
├── download.py
└── yyy.bin
“`“`python:download.py
from flask import Flask,send_fileapp = Flask(__name__)
@app.route(“/xxx.bin”,methods=[“GET”])
def download():
return send_file(“./yyy.bin”,mimetype=”application/octet-stream”,as_attachment=False,download_name=”zzz.bin”)if __name
Ubuntu 18.04でpip install しようとすると”ModuleNotFoundError: No module named ‘pip._internal’が出る。
# pip が見つからない
“`
pip install pandas
“`“`
“ModuleNotFoundError: No module named ‘pip._internal’
“`
と出る。。。
pip を再インストールする。
“`
sudo apt install python-pip
“`
“`
sudo apt install curl
“`
“`
curl “https://bootstrap.pypa.io/get-pip.py” -o “get-pip.py”
“`
“`
sudo python get-pip.py
“`
バージョン確認
“`
pip –version
“`
apt update
“`
sudo apt update
“`
apt upgrade
“`
sudo apt upgrade
“`
# pip3 もインストール
“`
sudo apt install python3-pip
“`
“`
pip3 –version
“`
# あとはご自由にpip install
“`
sudo
【Python】文字列のリストから別のリストの要素を含む文字列を抽出する方法
## 環境
+ conda 4.12.0
+ Python 3.8.12.final.0## コード
例)リスト `fruits` からリスト `filter` の要素(=ア, イ, ウ, エ, オ)を含む文字列を抽出する。抽出後のリストを `fruits_filtered` とする。“`py:py
fruits = [“リンゴ”, “イチゴ”, “バナナ”, “ブドウ”, “ミカン”, “キウイ”, “アンズ”]
filter = [“ア”, “イ”, “ウ”, “エ”, “オ”]
fruits_filtered = [f for f in fruits if any((str in f) for str in filter)]
print(*fruits_filtered) # イチゴ ブドウ キウイ アンズ
“`## コードの解説
### 内包表記
“`py:内包表記の例
# 内包表記
odds = [i for i in range(10) if i % 2 == 1]# 等価なコード
odds = []
for i in range(10):
neovimのLSPによるpythonの補完で、opencvが正常に補完が効かない
半年くらい前にvscodeからneovimに乗り換えたのですが、opencvの補完だけが正常に動いてくれないということがあって悩んでいました。numpyとかは普通に補完が効くのですが、例えば以下のようなコードを書いてみると、
“`
import cv2img = cv2.imread(‘sample.png’)
cv2.imshow(‘img’, img)
cv2.waitKey(0)
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733597/4ef4c147-2a01-f652-ba9c-771ecbffe8a9.png)こんな風にneovim上で怒られてしまいます。ただし、ターミナル上では問題なくこのコードは動きます。
## 解決策
https://github.com/emacs-lsp/lsp-pyright/issues/41このissueを参考にしました。
以下のようにターミナル上でコマンドを打つと解決します。“`
$ python3 -c
Pythonデータベースプログラミングを学習したのでまとめ
参考書籍
[Pythonデータベースプログラミング入門](https://www.amazon.co.jp/Python%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%97%A5%E5%90%91-%E4%BF%8A%E4%BA%8C/dp/4877834621)
日向俊二 著
カットシステム発行
ISBN 978-4-87783-462-3# ディレクトリ操作
“`python:dir.py
import os
os.chdir(“C:\\PythonDB\\ch02”)
print(os.getcwd())
“`
numpyでargsortの逆操作を行う配列を (sort1回のみで) 簡潔に得る
表題のとおりです.
以下のように行うとsortは一回で済み,for文を使う必要もないです.
“`python
import numpy as np# 配列を定義
size = 1 << 20 x = np.random.random(size) # sortを行う order = np.argsort(x) # 逆操作を得る (以下2行) order_inv = np.zeros_like(order) order_inv[order] = np.arange(size) # 検証 np.allclose(x, x[order][order_inv]) >>> True
“`
Python3 模擬試験のミス問題を調べて理解を深める3
### 初めに
現在Pythonの試験勉強を始めて1か月ほど。
残り2週間ほどで試験を受けるつもりなので、模擬試験をこなしてミス問題を復習し、理解を深めていけるようにしたい。
※自分用なのですべての解説を網羅させるつもりではないです。
模擬試験の結果を赤裸々に載せていくので、どんな問題を間違えているのか気になる方は見てもらえればと思います(笑)模擬試験は無料のPRIME STUDYというサイトで行っています。
模擬試験の結果がメールで届き、正誤を教えてくれるので理解ができていない部分に関してフォローできるので便利だと思いました。https://study.prime-strategy.co.jp
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/9433900e-f01d-b745-413b-569079c837fc.png)
前々回の第一回試験の結果(初見)
>受験日2022/9/1
第1回 Python 3 基礎 模擬試験 を受験いただきありがとうございまし
numpyで第一要素でSortし,同一値の場合は第二要素でSortする方法
`np.lexsort` によってargsortができるようです.
ただし,一番最初にSortをするKeyが引数の最後に来ることに注意が必要です.“`python
import numpy as npa = np.array([
[2, 1, 2, 3, 1, 4, 3],
[4, 1, 3, 2, 3, 3, 5],
]).Torder = np.lexsort((a[:, 1], a[:, 0]))
>>> a[order]
array([[1, 1],
[1, 3],
[2, 3],
[2, 4],
[3, 2],
[3, 5],
[4, 3]])
“`
CヘッダからPython向けバインディングを自動生成してDLLから関数を呼び出す方法
# この記事は?
C向けSDKが手元にあるけど柔軟にインタプリタ型言語のPythonでチクチク触りたい人向に刺さると思われる記事
いいねしていただけるとモチベが上がります。## 時間がない人向け
ctypeslib2をインストールすると付属するclang2pyを使用すると簡単にできる
1. `pip install ctypeslib2`
2. `clang2py header.h -o out.py`
3. (Windowsのみ)生成されたコードを編集し、DLLとリンク## 確認のためCソースから自作してPythonから呼んでみる
XとYの値を持つ`POINT`型を含んだヘッダファイルを作る。
C言語側のお仕事は`print_position()`で`POINT`の属性を出力すること。
DLL化するために`__declspec(dllexport)`を使用する。“`c:point.h
#ifndef POINT_H
#define POINT_Htypedef struct Point {
int x;
int y;
} Point;__dec
Webdriver managerを使用していても、Google Chrome のバージョンをサポートしていないとメッセージが出た場合の対処方法
## ■記録した理由
>通常Google Chrome のバージョンはChromeDriverManager(「from webdriver_manager.chrome import ChromeDriverManager 」)をインポートしていれば自動で修正されるが、下記のような表示がTerminal上に出て、たまに修正されない場合がある。
>その場合は、手動で直す必要があるので記録した。![スクリーンショット 2022-09-10 8.32.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634708/ff245f52-29d7-15c6-afe2-63cecdc2ef44.png)
## ■対処方法
>①まず、chromedriverのホームページを開く
urlはここ https://pypi.org/project/chromedriver-binary/#historyhttps://pypi.org/project/chrome
D社のコーディングテストを私の勝手に解いてみました!
おはようございます!:sunrise_over_mountains:
私が住んでいるところは12日まで休みですが、13日にD社のコーディングテストがあるので…。
うーん…。無理矢理パソコンの前に座りました。:disappointed_relieved:
D社もコーディングテストの模試を公開しているので、そのうちの一つを解いてみたいと思います。# 問題
正方形の大きさの格子状の庭に、咲いた花または咲いていない花を植えました。
この庭の花が全部咲くのに何日かかるのか知りたいです。ある日に咲いた花の前後左右の4方向にある花は、次の日に花を咲かせます。現在の庭園の状態を盛り込んだ2次元リスト`garden`が与えられた時、すべての花が咲くのに何日かかるのか`return`するように`solution`関数を作成してください。
# 説明
現在の庭園の状態を盛り込んだ2次元リスト`garden`が`solution`関数のParameterとして与えられます。
– 庭園の一辺の長さは2以上100以下です。
– 庭園の状態を盛り込んだ2次元リスト`garden`の元素は`0`または
functools.lru_cacheに有効期限があると便利だよね。
個人的な備忘録メモです。
プロジェクト内で、DBで取得したデータってメモリないにキャッシュしておきたいなと思うことありませんか?
でも、DBの記録されているデータって常時変わる可能性があるし、いちいちサービスを止めれない。
じゃ、redisか、いやlru_cacheをうまく活用できないかと上司との擦った揉んだ(私は聞いていた)の上、
以下のページでどうやらできるらしい。https://www.rhoboro.com/2021/06/01/lru_cache-with-ttl.html
https://stackoverflow.com/questions/31771286/python-in-memory-cache-with-time-to-live
一番参考になったのは、ほぼろさんの記事ですね。ほぼろさんの記事ではstackoverflowの内容を保管してくれていてすごく勉強になりました。
それらを踏まえて完成したのは以下のコード
“`python
import functools
from datetime import datetime, timedelta
Macにpyenv/Python3/pipのインストール
# はじめに
python3と関連モジュールをインストールするためのメモです。
まずタイトルのpyenv/Python3/pipを説明します。## pyenvとは
Pythonのバージョンを管理するモジュールです。
これを使ってpythonをインストールします。## pythonとは
Pythonはプログラミング言語の一つです。
機械学習や人工知能などのライブラリも豊富です。## pipとは
Pythonのパッケージを管理するモジュールです。
Pythonと一緒によくインストールされます。# 実行環境
macOS Monterey 12.3
Homebrew 3.5.10# pyenvのインストール
まずはpyenvがインストールされているかの確認
“`
$ pyenv -v
zsh: command not found: pyenv
“`ないのでbrewコマンドでインストール
brewコマンドのインストールは[こちら](https://qiita.com/ukei2021/items/51cdc9fbd53428708fea)
“`
$ brew ins
py-cordのUI KITを使ってボタンやドロップダウンメニューを実装する方法
# はじめに
この記事ではPythonのDiscordでBOTを作成する為のライブラリの`py-cord`を利用したUIの作成について説明させていただいています。## 前提知識
主に`py-cord`でコマンドを実装したことがある方であればおおよそわかる内容かと思います。
もし、一度も実装した事がない場合は[こちらの記事](https://qiita.com/nikawamikan/items/1c253ce9b05d7edf1dd0)などを参考にして基本的なコマンドを実装してみてください。
python自体のクラス継承なども登場しますが、ある程度解説するので必須ではありません。## 環境
– python 3.10.6
– py-cord 2.1.3# もっとも簡単な方法
`py-cord`では簡潔な記述でボタンを実装するデコレータが用意されているため、最も簡単な実装では以下のようにボタンを実装することができます。
この情報はほとんど[Pycord公式のガイド](https://guide.pycord.dev/)となりますので、そちらで参考してもいいと思います。
【CentOS 7 / pyenv】サーバー環境のPythonバージョンアップデート
# はじめに
サーバー環境のPythonのバージョンをアップデートする時の流れをまとめました。
初心者向けにはなりますが、つまづいたところも書き留めているので、同じところで悩んでる方の助けになれば幸いです。# 環境
* CentOS 7
* pyenv# Pythonのバージョン変更の流れ
[1. 現在のPythonバージョンを確認](#1-現在のpythonバージョンを確認)
[2. pyenvでインストール可能なPythonバージョンを確認](#2-pyenvでインストール可能なpythonバージョンを確認)
[3. バージョンを指定してpythonをインストール](#3-バージョンを指定してpythonをインストール)
[4. pyenv内のpythonのバージョン切り替え](#4-pyenv内のpythonのバージョン切り替え)
[5. 現在のpythonバージョンを確認](#5-現在のpythonバージョンを確認)[つまずいたところの解決方法まとめ](#つまずいたところの解決方法まとめ)
## 1. 現在のPythonバージョンを確認
現在サーバーで参照されてい
初心者のためのPython Tip #1-Input編
# はじめに
初めまして、Qiitaでの初投稿です。
Pythonプログラミングをしている皆さんもご存知の簡単なテクニックを記載します。
初心者向けの説明ですがたまに普通のエンジニアの方でも紛らわしい部分も探っていきます。
(日本人ではないので、日本語の間違いは指摘してください。)## Input(入力)
入力はこれが基本ですよね。
“`Input.py
a = input() # Stringで入力
_list = input().split() # string type listで入力
a, b = input().split() # a, bで分けて入力
“`
**Q:** それならInt型で入力してもらうにはこうすれば良い?“`Int_wrong.py
A, B = int(input().split())
“`
**A:** **Int**型で入力を受けても、**list**型にすぐ変換できませんので、このコードは機能しません。
この時は**map**を使用します。**map**は基本的に適用する関数、使用できる資料のタイプを指定します。
“`
【Flask】url_forを使用して画像ファイルを表示する方法
Flaskのurl_forを使用して画像を表示する方法を紹介します。
## ディレクトリ構成
今回例として使用するディレクトリ構成は以下のようになってます。
“`bash
flask$ tree .
.
├── __pycache__
│ └── func.cpython-310.pyc
├── main.py
├── static
│ ├── images
│ │ ├── default.png
│ │ ├── home.png
│ │ └── logo.png
│ ├── js
│ └── style
│ └── style.css
└── templates
├── index.html
└── layout.html9 directories, 18 files
“`static/images/default.pngファイルを表示するやり方を記載します。
## static配下を使用するためには
今回、cssファイルやjsファイル、imageファイルはstaticディレクトリ配下に入れてい
django+nginx+uwsgiの環境構築
本稿はAWS EC2環境にて以下構成でdjango、nginx、uwsgiによる開発環境を構築する際の私的メモです。
## 構成
| 名称 | バージョン | 用途 | その他 |
| ———— | ———- | ———————————— | ————— |
| Amazon Linux | 2 | OS | |
| nginx | 1.20.0 | Webサーバ | |
| uwsgi | 2.0.20 | APサーバ | |
| pyenv