Python関連のことを調べてみた2021年11月01日

Python関連のことを調べてみた2021年11月01日

pandas実践入門〜Kaggleなどのテーブル形式のデータを分析するために〜

# はじめに
テーブルデータの分析やKaggleに参加するなら必須であるpandasでよく使用するデータ処理をまとめました。

強い分析者になるならこんな所でつまづきたくない!また、ちょっとしたことで地味に使うけど、再度検索するのはめんどくさいといったようなtipsも含んでいます。
#### 注意
`import pandas as pd`やデータ生成については省略しています。
ご自分のプロジェクトやデータセットがあって、これから分析を始めたいといった方向けに書いております。

## Options
JupyterやPyCharmなどの分析環境でDataFrameの表示が省略されないようにします。 特にカラムは全て表示しておきたいと思うことがよくあります。

“`Python
pd.set_option(‘display.max_columns’, 50)

pd.set_option(‘display.max_rows’, 50)
“`

全部見える必要がなくなった場合には、表示設定を元に戻します。

“`Python
pd.reset_option(“^display”)
`

元記事を表示

UNICORNプログラミングコンテスト2021(AtCoder Beginner Contest 225) 参戦記

# UNICORNプログラミングコンテスト2021(AtCoder Beginner Contest 225) 参戦記

## [ABC225A – Distinct Strings](https://atcoder.jp/contests/abc225/tasks/abc225_a)

2分半で突破. 最大で6種類しかないので、サクッと生成してしまうのが良いですね.

“`python
S = input()

t = set()
t.add(S[0] + S[1] + S[2])
t.add(S[0] + S[2] + S[1])
t.add(S[1] + S[0] + S[2])
t.add(S[1] + S[2] + S[0])
t.add(S[2] + S[0] + S[1])
t.add(S[2] + S[1] + S[0])
print(len(t))
“`

## [ABC225B – Star or Not](https://atcoder.jp/contests/abc225/tasks/abc225_b)

4分で突破. 全ての*i*について*ai<

元記事を表示

Anaconda Navigatorが起動しない(PyQt5が影響していた話)

# PyQt5をインストールしたらNavigatorが起動しない
PyinstallerなどではPyQt5のインストールが要求されることがあります。
Anaconda Navigatorの起動ではPySideが要求されるのですが、PyQt5がインストールされていると**競合**して起動しない場合があります。
>PythonバインディングはQt4系のPyQt,PySide、Qt5系のPyQt5,PySide2があります。
>https://teratail.com/questions/246069

以下のようなエラーが出た場合、PySideとPyQt5が競合されている場合があります。

“`bash
ModuleNotFoundError: No module named ‘PySide’
“`

以下のコマンドでPyQt5をアンインストールすると、PySideを使ってAnaconda Navigatorが起動するようになるはずです。

“`bash
pip uninstall PyQt5
“`

PyQt5が起動を競合している場合、Anacondaのアンインストールでは修正で

元記事を表示

月でループする(クエリパラメータを動的に作成) VBA Python

スクレイピングで頻出するのは
開始日と終り日を入力
開始日から終わり日までループしながらなにかしらのデータを取得するというもの。

頻出のわりにはぴたっとはまるものがなかったのでメモ書き

http://test.jp?xx=202112
http://test.jp?xx=202201
のようにxx=202201のクエリパラメータ部分を動的に変更することで、各月のデータを取得する。

例えば
開始:2021/11/01
終了:2022/2/28
の場合
年月を表す文字列を以下のように順次作成し、
202111
202112
202201
202202
作成した文字列をクエリパラメータにして順次ページ遷移する

#vbaの場合
前提
windows10
##①DateDiff 関数でループに必要な月の差分を求める。
例・開始が2021年11月10日終了が2022年2月1日の場合、4か月
[DateDiff関数使い方](https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help

元記事を表示

【Django】Exception Value: type object ” has no attribute ‘_meta’のエラー処理

#はじめに
Djangoプロジェクト開発の際にタイトルにあるエラーに遭遇しました.本日はこのエラーメッセージの対処法について自分なりに勉強した内容を記事にしております.

※「とりあえずエラーが解消できれば良い!」という方は,この記事の途中は読み飛ばして「[エラー処理方法](https://qiita.com/drafts#%E3%82%A8%E3%83%A9%E3%83%BC%E5%87%A6%E7%90%86%E6%96%B9%E6%B3%95)」だけ読んで頂ければ解決できると思います.

#エラーの原因は?
このエラー文は**「モデルクラスに_meta属性があるはずなのに,どこにもない!」**と怒ってきています.
Djangoプロジェクト内で,モデルを参照することを前提として動いている機能を使う際に,そのモデルの参照が適切にできていないと,このように怒られるようです.

##_meta属性とは
_meta属性はDjango ORM(Object-relational mapping: オブジェクト関係マッピング)を中核を担うAPIです.Djangoプロジェクト内のモデル定義部分以

元記事を表示

Pythonで分数のリストを誤差なしでソートする

# はじめに
 AtCoder Beginner Contest 225 (ABC 225) の [E 問題][1] で、表題のことができずに詰んだので、勉強した結果をまとめます。

# 普通にソートするときの問題点
 分数のリストをソートしたいときは、普通は以下のように分数を少数に直し、小数のリストでソートしますよね。

“`python
l = [5 / 7, 3 / 8, 1 / 2]
# l = [0.7142857142857143, 0.375, 0.5]

l = sorted(l)
# l = [0.375, 0.5, 0.7142857142857143]
“`

 しかし、分母・分子の値が大きくなってくると誤差が出ることがあります。それが原因で、正しく順序がソートされないことがあるのです。誤差が出るパターンを1つ示します。

“`python
>>> (10 ** 9 + 1) / 10 ** 9
1.000000001

>>> 10 ** 9 / (10 ** 9 – 1)
1.000000001
“`

$(10^9 + 1) / 10^9$ と $1

元記事を表示

python djangoフレームワークで最初にやること

## | 1.プロジェクトの作成

“` bat
django-admin startproject {project_name}

“`

## | 2.アプリケーションの作成

“` bat
python manage.py startapp {app_name}
“`

## | 3. setttings.pyを編集

### | 3.1 作成したアプリケーションを追加

INSTALLED_APPS = []に次の値を入れる
app_nameはアプリケーションの名前

“` python
‘app_name.apps.App_nameConfig’
“`

最初のアプリ名はふつう、二個目のアプリ名は先頭の文字を大文字に

### | 3.2. 日本語にする

LANGUAGE_CODE = ‘ja’
TIME_ZONE = ‘Asia/Tokyo’

***

djangoを独学しています。
備忘録のように書いています。

元記事を表示

Jupyter labでKernelがないといわれた。

Anacondaを起動してJupyterlabを起動したらNo Kernelとなったのでその原因とその修正方法をここに残します。
##経緯
AnacondaのPromptでJupyterlabを起動するとブラウザが立ち上がり表示されるまでは動くがNo kernelとなってプログラムが動かせない状態になった。原因がPromptには表示されていた。

“`
ImportError: cannot import name ‘Template’ from ‘string’
“`

##原因
フォルダの中にstring.pyというモジュール名を持ったPythonファイルを作成していたことだった。このファイルは予約された名前であったため、このファイルが参照され動かなくなっていた。

##修正方法
string.pyのファイル名をほかの名前にすればいい。

元記事を表示

YouTubeでAI・Pythonを学ぼう!

![qiita_header_005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1667780/d3ba2240-a7fa-14c7-7d8d-098b8d199874.jpeg)
ありがたいことにYouTubeにはたくさんの学べるコンテンツがあります。AIやPythonに関するのコンテンツもどんどん増えてきており、学習中の身としてはありがたい限りです。寝食以外はほぼYouTubeを視聴しているかもしれない私が、AIやPythonを学べるチャンネルおよび動画を紹介していきます。

## いまにゅのプログラミング塾
私が受講しているキカガクの元講師の方がやられているチャンネルです。分かりやすい語り口とハンズオン形式で理解しやすい点が特長です。動画内で使用される画像や効果音がポップで少し未来感があるので、最先端技術を学ぶ意欲をかき立ててくれます。

https://www.youtube.com/c/%E3%81%84%E3%81%BE%E3%81%AB%E3%82%85%E3%81%AE%E3%83%

元記事を表示

【AtCoder解説】PythonでABC225のA,B,C,D問題を制する!

**ABC225**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**

よかったら**LGTM**や

元記事を表示

djangoのcleaned_dataについてまとめてみた

今回のお題

今回はdjangoに用意されているcleaned_dataという変数についてまとめます。

この記事を書くに至った理由はCustomUserの実装にあたってcleaned_dataが必要だったからであり、基本的には自分用のメモとして残します。

cleaned_dataとは

まず、cleaned_dataとは何かというと、「あるオブジェクトの属性値の中でバリデーションをクリアしたものだけを辞書形式で格納したもの」になります。

具体的にみていきましょう(ソースコードのimport部分は省略しています)。

“`python
class Hoge(models.Model):
name = models.CharField(null=False, max_length=20)
age = IntegerField()

hoge = Hoge()
hoge.name = “hoge”
hoge.age = “30”

print(hoge.cleaned_data)
# 結果:{}
# バリデーション前なのでcleaned_dataは空

hoge.is_

元記事を表示

[Python] Docker+Python+Seleniumでスクレイピング

#はじめに
前回の記事でDockerコンテナでPython環境を作成しSeleniumを操作してみました。
今回はWebページのフォームで値を入力し、その結果の表示確認をしてみます。
SeleniumでWebページを操作する基本のような部分を備忘録として残すために記載したので見づらいかもしれませんが、そこはご了承ください。

#実施すること
今回は下記の項目を実施してみようと思います。
1. Seleniumを使用しChromeを起動する。
2. Webページを表示する。
3. ページ内のボタン要素をクリックし、ページ遷移する。
4. 遷移後のページで必要な要素が表示されるまで待機する。
5. ページのp要素からテキストを取得する。
6. ページ内のボタン要素をクリックし、ダイアログボックスを表示させる。
7. ダイアログボックス内のinput要素に値を入力する。
8. ダイアログボックス内のdropdownメニューから値をセレクトする。
9. ダイアログボックス内のボタン要素をクリックし、データを送信する。
10. 送信完了のアラートが表示されるまで待機する。
11. アラート内の

元記事を表示

細かいつまずいたことをメモしておく(10月編)

# はじめに

2021年10月も仕事や勉強でつまづいたことをまとめて自分用のメモとしてあげておきます。
調べればすぐわかる程度で私が記事にする必要はないなと思ったもです。

今月は仕事の繁忙期を乗り切り(来月再来予定)、比較的落ち着いた1か月となりました。

しかし、Windows11が始まるなどのトラブルが起きており、それに関連した問題に対処しました。

# 問題

## 1. GoogleColabratoryでMeCab+Neologdを使いたい

https://qiita.com/jun40vn/items/78e33e29dce3d50c2df1

こちらの記事を参考にした。

インストールは以下のコマンド

“`
!apt-get -q -y install sudo file mecab libmecab-dev mecab-ipadic-utf8 git curl python-mecab > /dev/null
!git clone –depth 1 https://github.com/neologd/mecab-ipadic-neologd.git > /

元記事を表示

ABC225 チャレンジ結果

ABC225結果:AB(3)C3完
今回から後半問題の取り組みも期待してC++でやってみた…が手にまだ馴染んでないようで途中からPythonに切り替えたりとてんやわんやであった.

A:ちょっとした高校数学. 3! = 6 or 3!/2! = 3 or 3!/3! = 1のいずれか.

“`c++:Distinct_Strings.cpp
#include
#include
#include
#include

using namespace std;

int main(){
set L;
string S;
cin >> S;

for (int i=0;i<3;i++){ L.insert(S[i]); } int sz = L.size(); //cout << sz; if (sz == 3) cout << 6; if (sz == 2) co

元記事を表示

AWS boto3サンプルコード

# はじめに
boto3でAWSリソースにアクセスするサンプルコードの覚書きです。
# S3
S3のサンプルコード集
## KeyObjectの全取得
指定バケットのすべてのContentsをListで取得します。
list_objects_v2は一度に最大1000件まで取得するので、バケット内のObjectをすべて取得するにはTokenで制御する必要があります。

“`python:sample.py
from typing import List
import boto3
def get_s3_objects(bucket: str, key_prefix: str = “”, **kwargs) -> List[dict]:
result: list = []
params: dict = {“Bucket”: bucket, “Prefix”: key_prefix}
params.update(kwargs)
while True:
response = s3_client.list_objects_v2(**params)

元記事を表示

LINE Message API でメッセージするテスト

タイトルの通りですが、初めてやったので、メモです。

##LINE Developerの登録 → チャネル作成
いろんなところに記事がありますので、省略しますが、
ログイン後、「プロバイダ」を作り、「チャネル」(BOTですね)を作ります。

###アクセストークンの取得
「Message API」タブの下のほうで、「チャネルアクセストークン(長期)」を取得しておきます。
また、
「チャネル基本設定」タブの下の方の「あなたのユーザID」を控えておきます。

##メッセージするプログラム
今回は、Pythonで作ってみました。
Macで作ったんですが、ちょっと手間取りました。

###ライブラリのインストール
line-bot-sdkをインストールします。

“`
% pip install line-bot-sdk
% pip show line-bot-sdk
“`

###ソース
「line-push.py」として保存しました。

“`
import sys
sys.path.append(‘/Users/[ほげほげユーザー]/Library/Python/3.8/lib/p

元記事を表示

LambdaからRDSへ接続してみる

#ご挨拶
タイトルの通りLambdaからRDSへ接続してみたので記事を書いていきます。
最近業務でLambdaを使用することが増えてきたので勉強になればと思いやってみました。
#やること
LambdaでプライベートサブネットにあるRDS MySQLに向けてSQLを実行して実行結果を確認します。
今回RDSの作成はCloudFormationを使用しています。
事前にプライベートサブネットを二つ作成しています。
以下の手順で進んでいきます。

1. Lambda関数の作成
2. IAMロールの編集
3. RDSの作成
4. LambdaをRDSに接続できるように設定
5. テスト実行

###構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612471/080a41ab-852d-2f12-2066-cf1b11abea77.png)

#参考にしたサイト
[チュートリアル: Amazon VPC の Amazon RDS にアクセスする Lambda 関数の設定](https://

元記事を表示

オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(8)

# Juliusをサーバとして動作させる。

-moduleオプションをつけてJuliusを起動するとsocket接続したアプリケーションに認識結果をXML形式のデータで出力するようになります。

“`shell-session:
pi@raspberrypi:~ $ julius -C ~/julius/dictation-kit-4.5/am-gmm.jconf -nostrip -gram ~/julius/dict/sensor -module
“`

実行ログ

“`shell-session:
pi@raspberrypi:~ $ julius -C ~/julius/dictation-kit-4.5/am-gmm.jconf -nostrip -gram ~/julius/dict/sensor -module
STAT: include config: /home/pi/julius/dictation-kit-4.5/am-gmm.jconf
WARNING: m_chkparam: “-l

元記事を表示

pyenv + pipenv環境構築(python)から、pythonファイル実行まで

python環境構築

pythonの環境を構築していく。今回のpythonの環境はpyenv + pipenvを使用する。

homebrewは入っている状態のパソコンで作業する。
https://qiita.com/zaburo/items/29fe23c1ceb6056109fd

pyenvとは

pyenvとは、システム上に複数バージョンのPythonを同居させて使い分けられるようにするものであり、pyenvを用いることでpythonのさまざまな環境を使い分けることができる。

pyenvインストール

“`php
# brewが入っているコマンドラインで
brew install pyenv
“`

pipenvとは

pipenvとはpip と venv の両方の機能を兼ね備えたサードパーティ製のパッケージ管理ツールである(下記urlより)
https://rinatz.github.io/python-book/ch04-05-pipenv/

pipはpythonのパッケージを管理するためのツールであり
venv

元記事を表示

python: 内包表記で組合せ(コンビネーション)を列挙する

異なるn個のものからr個のものを選び出す組合せ(コンビネーション)を列挙する。

“`python:5個から2個を選ぶ
[[a, b] for a in range(5) for b in range(a)]
“`
“`python:
[[1, 0],
[2, 0],
[2, 1],
[3, 0],
[3, 1],
[3, 2],
[4, 0],
[4, 1],
[4, 2],
[4, 3]]
“`

“`python:5個から2個を選ぶ(ビットパターン)
[1<

元記事を表示

OTHERカテゴリの最新記事