Python関連のことを調べてみた2022年12月30日

Python関連のことを調べてみた2022年12月30日
目次

【データ結合/Python】左外部結合でmergeすると、右側のテーブルの値がNaNで結合されてしまう

# 今回の課題
train.csv(train_df)を左、tranaction.csv(transaction_df)を右側で左外部結合したところ、
transaction_dfの`transactions`カラムがNaNになってしまった。

原因としては、
**結合するためのキーとして設定していた`date`カラムが、
train_dfとtransaction_dfの間で一つも一致するものが無く、うまく結合ができていなかっただけ**だった…。

初歩的な原因ではあったが、
pythonでデータの結合を試行錯誤した記録としてメモに残すことにした。

**※補足**
[Store Sales – Time Series Forecasting](https://www.kaggle.com/competitions/store-sales-time-series-forecasting)で配布されているCSVデータを少し加工して、結合しようとしました。

## 試行錯誤した内容
#### 1)dateとstore_nbrをキーにして、左外部結合してみた
“`python
tran

元記事を表示

kubeflow elryaを用いたMLOpsについて

Kubeflow Elrya を用いた MLOps (Machine Learning Operations) は、Kubernetes 上で機械学習ワークフローを実行するためのプラットフォームです。Kubeflow Elrya を用いた MLOps を行う場合、以下のようなステップがあります。

1. Kubeflow Elrya をセットアップする: Kubeflow Elrya を使用するには、まず Kubernetes クラスター上にセットアップする必要があります。Kubeflow Elrya のセットアップ方法については、公式ドキュメントを参照してください。

2. Jupyter Notebook を使用したモデル開発: Kubeflow Elrya は、Jupyter Notebook を使用したモデル開発をサポートしています。Jupyter Notebook 上では、Python や R などの言語を使用して、データを処理したり、モデルをトレーニングしたりすることができます。Kubeflow Elrya を使用することで、Jupyter Notebook をクラウド上で

元記事を表示

【Qiita API】Qiita投稿記事の総閲覧数知りたくない?

## はじめに
どうもこんにちはもきお([@mokio_50](https://twitter.com/mokio_50))です。実務でスクレイピングやデータ分析に触れたので、なんかデータ取ってきて取得したものを分析してみたい欲にかられました。

そこでふと思ったのが、自分がこれまで投稿してきた記事の総閲覧数とかってパッとみる事できなくね?総閲覧数ってどのくらいなんだろう?と調べてみたくなりました。

なので今回は総閲覧数をPythonを使用し取得するのをメインに実装してみたのを書き残しておきたいと思います。

## 実装方法
最初はスクレイピングしないと取得できないかなーと思っていましたが、調べてみるとQiitaさんが正式にAPI提供してくれているではありませんか!!ドキュメントも分かりやすく書かれています。さすがQiitaさん!

https://qiita.com/api/v2/docs

あとはこのAPIにリクエストを投げて、返ってきたjsonデータを可視化すれば良さそうです。Qiita API使用している良さそうな記事ないかなーと思っているとまさに自分がやりたい事を記事にして

元記事を表示

プログラミング初心者がDjangoとTwitter APIでツイート自動まとめBot(リアルタイム)を作ってみた。

初心者がゆえ四苦八苦しながら作成しました。その過程と成果を備忘録がてらこちらに残しておきたいと思います。
## まずは完成物のご紹介
完成したサイトは以下になります。
[Tree Pies](https://treepies.com/)
URL:https://treepies.com/
[Twitterアカウント](https://twitter.com/Tree_Pies)

そもそもこれは何かというと、Twitter上に存在するスレッド上のツイートをTwitterAPIを使い、自動でまとめて記事のように表示してくれるアプリケーションになります。

これを使うと以下のような長文スレッドもリプライ一つで記事のようにまとめを作成する事が出来ます。
Q. Pythonの”global”ってなに?

関数のなかに書いてあったけど、なにこれ。

# 結論
「この関数では**グローバル変数を上書きするよ**」という宣言。

Pythonでは、関数内から普通にグローバル変数を上書きしようとしてもエラーを吐くようになっている。(グローバル変数の安易な編集を防ぐため)

“`py
wallet = 0

def pay(amount):
wallet -= amount

# UnboundLocalError: local variable ‘wallet’ referenced before assignment
“`

この例では、`pay()`関数内で`wallet`というグローバル変数から引き算しようとしているので、`UnboundLocalError`を引き起こしている。

“`py
wallet = 0

def pay(amount):
global wallet
wallet -= amount
“`

これで解決。

# おわりに
Pythonくん、こういうところ意外と親切。

元記事を表示

BERTとLUKEの感情分析の精度を比較してみた(既存のモデルvs自作のモデル)

こんにちにゃんです。
水色桜(みずいろさくら)です。
今回は[前回の記事](https://qiita.com/Mizuiro__sakura/items/2dd4430cdee689dc2ddc)で作成したLUKEでの感情分析モデルと[既存のモデル(BERT)](https://huggingface.co/daigo/bert-base-japanese-sentiment)の精度面の比較を行っていこうと思います。

# 結論

感情スコアベースの比較では、作成したモデルは既存のモデルより、高い正答率となり、誤差も小さかった。

“`ruby:
BERTを用いた際の誤差は0.4051273187220645
BERTを用いた際の正答率は66.17647058823523%
LUKEを用いた際の誤差はtensor(0.2993, grad_fn=)
LUKEを用いた際の正答率は73.5294117647058%
“`

作成した感情分析モデルを使用してみたいという方は下記の記事から使用してみてください。初心者でも簡単に使用できるようになっています。

元記事を表示

標本平均と標本分散は不偏推定量か?

# 初めに
年の瀬なので,という訳ではないですが,研究以外の時間として少しだけ.

統計学は極めて興味深く,重要な分野です.中でも特に面白いのが「不偏推定量」というものなのですが,個人的な感覚としてこれはあまり有名ではない気がしています.「是非知ってほしい」というのと,「計算を忘れがちなのでメモしておこう」ということで,ここでは標本平均と標本分散がそれぞれ母平均と母分散の不偏推定量か否かを確認します.

上記の問いに対する解答は有名なので,結論から言うと:

* 標本平均は母平均の不偏推定量です.
* 標本分散は母分散の不偏推定量ではありません.

では,なぜ?というのが次の問いなので,本稿では,これらの結論に到達するまでの過程を勉強してみます.

## 母集団と標本
まずは母集団と標本という概念.

有名なお味噌汁の話から始めます.お味噌汁を友人に振る舞うとしましょう.折角の機会なので,美味しく作って見栄を張りたいわけです.美味しくできたか確認する方法の一つは,鍋の中のお味噌汁を全て飲み干して味見することです.これで今日作ったお味噌汁の味が完全・完璧に分かります.しかし,これでは皆に

元記事を表示

[Python / AWS lambda] AWS Lambda実行時にnumpyのRuntime.ImportModuleError

# エラー内容

“`bash:Cloudwatch Logsのロググループで確認
[ERROR] Runtime.ImportModuleError: Unable to import module ‘src.handlers.filename’:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check

元記事を表示

[Python / pipenv] pipenv install 実行時に FileNotFoundError: [Errno 2] No such file or directory: ‘…/.venv/bin/python’ 発生

# Version

|Module|Version|
|:-|:-|
|Python|3.9.10|
|pipenv|2022.12.19|

“`bash:version確認方法
# python –version
Python 3.9.10
# pipenv –version
pipenv, version 2022.12.19
“`

# エラー内容

“`bash
$ PIPENV_VENV_IN_PROJECT=1 pipenv install -d
Loading .env environment variables…
Installing dependencies from Pipfile.lock (13ac1e)…
Traceback (most recent call last):
File “/usr/local/bin/pipenv”, line 8, in
sys.exit(cli())
File “/usr/local/lib/python3.9/site-packages/pipenv/vendor/

元記事を表示

Pythonで同人オタクの感想カードを一斉出力

まずはじめに、本記事では以下のように言葉を定義して話を進めます。

**同人オタク = 1次創作や2次創作で同人誌を作ったりしながら過ごしているオタク**

この言葉がわからないようであれば本記事はちんぷんかんぷんだと思われます。
Python知見を探して迷い込んでしまった人はもっと良い記事を探すことをお勧めします。

# 同人オタクはいつだって好意的な感想がほしい(諸説有)

創作しているとやっぱり誰かの反応が欲しくなってくるときがあります。
そんな欲求に応えようとTwitterのフォロワーさんが、感想を届ける敷居を下げよう!ということで可愛らしい感想用カードを用意して、リアルイベントでポストに投函すると作者さんいお届けしてくれる企画をされていました。

さらに現地にこれない方向けに……とGoogleFormsを開放したのですが、
みんな張り切って愛のこもった感想を送ったため、集まったのがなんと3桁件。

フォロワーさんは手書きによる写経を諦め、Formsの回答をcsv出力してなんとかしようとしたが……
[Python] 位相速度と群速度の可視化

## はじめに

大学(高校)で物理を学んでいると、波の位相速度や群速度といった言葉が頻繁に出てきます。これが非常にわかりづらく、僕も理解に苦しんだ過去があります。今回は、Python の簡単なプログラムで波の時間発展をシミュレーション可視化して、位相速度・群速度・波束といった概念をざっくり理解することを目指します。

## 復習
#### 分散関係
波の振動数(周波数)$\omega$ と波数 $k$ の関係を「分散関係(dispersion relation)」と呼びます。
以下簡単のため、1次元波動で考えます。分散関係は $\omega=\omega(k)$ と表されます。

#### 位相速度 (phase speed)
波の位相が伝わる速さのことを位相速度(phase speed)と言います。要は、波の山や谷が動くスピードのことです。位相速度 $c_{p}$ は
“`math
c_{p} = \frac{\omega}{k}
“`
で与えられます。
#### 群速度 (group velocity)
波の全体的な塊(これを波束という)が移動する速度を群速度 (group

元記事を表示

AtCoder Beginner Contest(ABC) 283 – Pythonでリアルタイム参加結果と内容整理

# 1. 前書き
AtCoderBeginnerContest(ABC)の参加結果と内容の整理、および外部の解説記事を参考にした上で、自分なりに解法を整理していきます。
使用言語はPythonで行きます。本業ではJavaかRubyonRailsユーザーですが、計算速度の問題であったり、トレンドに乗っておくという意味でも(こちらが大きい)、Pythonに慣れていきたいと思います。

# 2. コンテスト内容
– コンテスト名
– AtCoder Beginner Contest 283
– 開催日時
– 2022/12/24(土) 21:00 – 22:40
– 実施区分
– リアルタイム参加

# 3. 結果
|区分|結果|所要時間|実行時間|
|:–|:–|:–|:–|
|A問題|AC|2:45|24ms|
|B問題|AC|8:10|463ms|
|C問題|AC|34:58(1)|202ms|
|D問題|AC|95:07(3)|159ms|

# 4. 解説

## 4-1. A – Power

### 4-1-1. 問題文
整数 A,B が与えられ

元記事を表示

Microsoft Azure: 秘密鍵を使ってサービスプリンシパルの認証を行う

Microsoft Azure で、秘密鍵を使ってサービスプリンシパルの認証情報を作成するコードを紹介します。 サービスプリンシパルに証明書を登録した場合は秘密鍵を使って認証できます。
さらに、その認証を利用して、 Azure Storage Account のコンテナ一覧、ファイル一覧を行なってみます。

## 環境

* Python 3.10.8
* pipでインストールしたもの
* azure-identity 1.12.0
* azure-storage-blob 12.14.1

## 認証情報を作成するコード

秘密鍵を使って認証情報を作成する場合は、 `azure.identity.CertificateCredential` を使います。
`CertificateCredential` のパラメータとなる `client_id`, `tenant_id` はサービスプリンシパルのページからわかります。

“`python
import azure

config = {
‘client_id’: ‘XXXXXXXXXXXXXXXXXX

元記事を表示

Java、Python、JavaScriptでよく使われる構文や機能を比較した表

## Java 、 Python 、 JavaScriptでよく使われる構文や機能を比較した表

| Java | Python | JavaScript |
|——|——–|————|
| `public class` | – | `class` |
| `class` | `class` | `class` |
| `public static void main(String[] args)` | `def main():` | `function main()` |
| `System.out.println()` | `print()` | `console.log()` |
| `int` | `int` | `number` |
| `double` | `float` | `number` |
| `boolean` | `bool` | `boolean` |
| `char` | `str` | `string` |
| `String` | `str` | `string` |
| `void` | – | `undefined`

元記事を表示

[python-oracledb入門](第2回) python-oracledbのインストール

# 連載目次
[連載:python-oracledb入門 目次](https://qiita.com/nakaie/items/c373cff694cb23a8568c)

# はじめに
本記事ではpython-oracledbのインストール方法を解説します。なお、本記事執筆時点でのpython-oracledbの最新バージョンは1.2.1です。また、python:3.10のdocker imageを使用して動作確認しています。

# インストール要件
バージョン1.2.1時点でのインストール要件は以下です。最新の情報をお知りになりたい場合は(本家)[https://oracle.github.io/python-oracledb/]の「Dependencies」をご確認ください。

Pythonのバージョン
Linux : 3.6~3.11
Windows, Mac : 3.7~3.11
Oracle Clientのバージョン(Thick Modeのみ)
11.2以上

元記事を表示

【入門】ソケット通信

# はじめに
普段何気にWebサイトを見たりする際に、実際にどのような通信が行われているのか意識したことはない、、、ブラックボックスとして意識の外に追いやっている方が多いのではないかと思います、

ネットワークエンジニアは、プロトコルの通信の仕組みはある程度理解している。
しかし、実際に作ってみようとしても、「あれ、、そんなのできるのか、、」となりました。

そこで、ネットワークの基礎的な通信であるソケット通信についてまとめて、実際に再現してみました。

# この記事の対象者
– ネットワーク初心者で、通信の基礎を学習したい
– 自分でソケット通信を再現してみたい
– ネットワークエンジニアなりたての初学者

# 環境
– Visual Studio Code
– Python 3.9.7

環境が無い方は以下を参考にして、準備してください

https://docs.microsoft.com/ja-jp/training/modules/python-install-vscode/

# 通信情報の取得
socketをimportすることで、通信の情報が取得することができます。
`

元記事を表示

Hugkunバチャコン 2022/12/29 1〜5問 解いてみた

バチャコンはこれ↓です
# Hugkunバチャコン 2022/12/29
https://kenkoooo.com/atcoder/#/contest/show/453fe06d-25b7-46a7-baa8-bb42f7b3a3fb

– コードは雑めです。ゆるしてー
– 競技プログラミングの勉強一切したこと無いので、テクニックは知らないよ。ごめんねー

## 1問目 ABC275_A問題(diff=14)
[提出コード](https://atcoder.jp/contests/abc275/submissions/37615978)
“`python
import numpy as np

n = int(input())
h = list(map(int,input().split()))
print(np.argmax(h)+1)
“`

– np.argmax()を知っていればすぐに解ける問題ですね。
– numpy使ったことない人は地道にforで回したかも?

## 2問目 ABC045_A問題(diff=26)
[提出コード](https://atcoder.jp

元記事を表示

python-networkmanagerはメンテナンス滞り中

# はじめに(結論)
NetworkManagerをPythonから叩くためのpython-networkmanagerパッケージはメンテナンスが滞っているので使わない方がいい,というお話です。(2022/12現在)

# 経緯
Python経由でOS(Linux)のIPアドレスを変更しようとpython-networkmanagerを使ってみました。が,ubuntu22.04(NetworkManage1.36),OracleLinux8U7(NetworkManager1.40.0)など,幾つかの環境で試してみたところ,ことごとくエラーが出て動きません。
こんなエラーです。

“`
File “ip.py”, line 8, in
connection = devices[1].ActiveConnection.Connection
File “/usr/local/lib/python3.6/site-packages/NetworkManager.py”, line 169, in get_func
return fixups.to_

元記事を表示

【Python】並列処理でwrite()してたら馬鹿みたいな文字化けをした

# まとめ
並列処理でwriteするときは`threading.Lock`を使おう!(どんな並列処理ライブラリを使っていてもthreadsをimportすればOK!)

# 経緯
Webスクレイピングで7つぐらいのスレッドから一つのファイルにスクレイピング結果を書き込んでいたとき、完成したスクレイピング結果ファイルをみると文字化けだらけだった!
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602537/f5561fbc-7a70-657e-f35f-7b61bf52ced1.png)

ここでは、並列処理にfuturesを使っていました。
### やっていたコード(悪い例)
“`Python:悪い例
from concurrent import futures

def scrape(アクセス先):
global f

#(スクレイピング部分)

f.write(result)

f = open(“ファイル”, “w”, encoding=”utf-8″)

元記事を表示

ホットペッパーのAPIを使ってランダムでご飯屋さんを提案してくれるプログラム

# きっかけ
コロナも落ち着いてきて家族や友人とご飯に行く機会も増えてきましたが、毎回違うお店に行きたいと思っても飲食店なんていくつもあるので、どれがいいか迷ってしまっていました。特に私は優柔不断なので、探して選ぶだけで何時間もかけてしまうこともありました。そこで、APIを使ってお店を勝手にいくつか選んでくれるプログラムがあったら、お店選びの指標の一つとして便利かなと思って作ってみました。

# ホットペッパーAPI
無料で使えるホットペッパーAPIを使います。利用するには登録が必要です。
ホットペッパーAPIリファレンス → [ホットペッパー | APIリファレンス – リクルートWEBサービス](https://webservice.recruit.co.jp/doc/hotpepper/reference.html)
ホットペッパーAPIはここから登録 → [APIキー発行登録 – リクルートWEBサービス](https://webservice.recruit.co.jp/register/)
(登録は数分程度で完了できます)

# プログラムの流れ
1. キーワードを入力
2

元記事を表示

OTHERカテゴリの最新記事