Python関連のことを調べてみた

Python関連のことを調べてみた
目次

Pythonが使える営業になろう!:PandasとNumPyを活用したデータ分析の実践ガイド

## 1. はじめに:データ分析の強力なツール、PandasとNumPy

営業の皆さん、こんにちは。今日はデータ分析に欠かせないPythonライブラリ、PandasとNumPyについてお話しします。これらのツールを使えば、売上データの分析や顧客情報の整理が驚くほど簡単になります。PandasはExcelのような表形式のデータを扱うのに適しており、NumPyは大量の数値計算を高速に行えます。この記事を通じて、あなたの営業活動がデータドリブンになり、より効果的になることでしょう。

## 2. Pandasの基本:DataFrameとは

Pandasの中心となるのがDataFrameです。これは、エクセルのシートのようなもので、行と列からなる2次元のデータ構造です。各列にはデータの種類(例:顧客名、購入金額、日付など)が入り、各行は1つのレコードを表します。以下のコードで、簡単なDataFrameを作成できます。

“`python
import pandas as pd

data = {
‘顧客名’: [‘田中’, ‘佐藤’, ‘鈴木’],
‘購入金額’: [50

元記事を表示

paizaラーニング問題集「【マップの扱い 2】マップの書き換え・縦横」を解いてみた

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__get_upsidedown

▼考え方

ポイントになる考え方1.~4.を以下に示します。

1.与えられた座標のマス(y,x)の1つ上の行(縦:y-1)、同じ行(縦:y)、1つ下の行(縦:y+1)、の順に処理します。

2.1つの行につき、与えられた座標のマス(y,x)の左隣(横:x-1)、同じ(横:x)、1つ右隣(横:x+1)、の順に処理します。

3.縦方向の添え字jや横方向の添え字iがマップの範囲を超える場合は、処理せず次のループに入ります。

4.与えられた座標のマス(y,x)の1つ上の行および1つ下の行において、(y,x)の上下左右に含まれないマスは処理しません。

▼コード
“`py

# 横方向 x,W,i
# 縦方向 y,H,j

########## 処理0(準備) インプット,リスト定義など ###########

H,W = map(int,input().split())

S

元記事を表示

paizaラーニング問題集「【マップの扱い 1】マップの書き換え・1 マス」を解いてみた

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__get_one

▼感想

横方向(x,W,i)を示す記号と、縦方向(y,H,j)を示す記号が混ざってしまわないように意識する必要があると感じました。コメントとしてコードに書いておくのがよいと思います。

▼コード
“`py

# 横方向 x,W,i
# 縦方向 y,H,j

########## 処理0(準備) インプット,リスト定義など ###########

H,W = map(int,input().split())

S = [[0 for i in range(W)] for j in range(H)]

for j in range(H):
S[j] = list(input())

y,x = map(int,input().split())

########## 処理1 マップの書き換え、マップの出力 ##########

if S[y][x] == “.”:

元記事を表示

SNSの感情分析ツールMAMH(Misskey Analyzer for Mental Health)を開発した話

どうも、掘る前のじゃがいもです
今回はQiitaの初投稿ということで、数日前に開発したツールの話をします

ざっくり言えばタイトルの通り、SNSの投稿を感情分析してみようというものです
公開はこちらでしました

https://sushi.ski/notes/9yye9bpuce

## 開発のきっかけ
普段はMisskeyという分散型SNSを使っていて、すしすき-というサーバーによくいるのですが、そのときくちばし(サーバー管理者)のこのような投稿を目にしました

>[SNSの投稿全部の感情分析してメンタルヘルスに役立てるとかありっすか?](https://sushi.ski/notes/9yhcmogd20 “投稿のリンク”)

>[この時間帯に気分が落ち込んでいるようです
→自律神経の不調の可能性がある的な](https://sushi.ski/notes/9yhcnjf62o “投稿のリンク”)

このアイディアに影響を受け、開発を行うことにしました
くちばしありがとう

## 設計
環境とかは

1. Pythonで開発する
2. Windows上で動く
3. GUIにはTki

元記事を表示

オプションを取得するシンプルな関数 [python]

オプションを取得するシンプルな関数を作りました。

pythonモジュールのargparseは複雑なので。

名前:option
引数:(argv,optionname)
返り値:(argv,parameter)

`(argv,parameter)=option(argv,’-o’)`

として呼び出してください。argvは、sys.argvで、parameterは’-o’で指定された直後の引数が返ります。
`-o`と引数の間にはスペースが必要です。

同じオプションが指定されると最初が有効です。

引数がなくなるとparameterにヌルストリングを返すので、複数の同じオプションを指定する場合は、ループ処理で繰り返し呼び出してください。

関数optionを切り出すか、モジュールとして使ってください。

僕の使っていいよ。

実行例

“`
$ ./option.py filename1 -o filename2 filename3
([‘.//option.py’, ‘filename1’, ‘filename3’], ‘filename2’)
$
“`

違うオプション

元記事を表示

PythonでCURSESライブラリを使う

# PythonからCursesライブラリを使ってみた
CURSESライブラリ(多分今はlibncurses)というライブラリでテキスト画面を制御付きであつかうもので、端末設定のTERM変数に依存します。
TERM変数は、古いシステムでは/etc/termcapまたはterminfoディレクトリ以下に、新たしいシステムでは/usr/shear/terminfo に置かれた定義に従って制御エスケープシーケンスを読み取って動作します。
一般的なテキストベースのフルスクリーンエディタ等で利用されています。
これを、Pythonで使うには
import curses
で使用できます。

# 使用目的
ちょろっと、UIを作るのに有効です。

# テストプログラム
“`curses_test.py
#!/usr/bin/python3

import curses as cs

stdscr=”

def init():
global stdscr
stdscr=cs.initscr()
cs.noecho()
cs.cbreak()
stdscr.

元記事を表示

Pandas Dataframe を用いたデータ抽出で、データサイズと計算時間の関係を実験してみた

### **user**:

ChatGPT先生、ちょっとPythonで実験したんですけど、そのコードの解説をお願いして良いですか?

### **assistant**:

おお、いいやんけ、あんた!Pythonで何か試したんか?ほんまよく頑張っとりますわ、ほれほれ、とっとと見せてみ!うち、あんたの問題、一生懸命に手伝うで!

### **user**:

まず、実験用データを生成するコードをお見せしますね。

“`python
import random

import pandas as pd

def make_data_table(x_size, y_size, z_size, filename=”test_data.csv”):
data_table = []
for x in range(x_size):
for y in range(y_size):
for z in range(z_size):
score = x * y * z

元記事を表示

Pythonを用いたプログラミング学習③|数当てゲーム(ヒット&ブロー)の作成

本記事の内容は書籍『[いちばんやさしいPython入門教室](https://amzn.asia/d/1NwQOiC)』のChapter 5~6にあたる。

# ヒット&ブローとは
* 親が0~9の数字を用いて4桁の数字を設定する
* 子はその数字を予想して親に提示する
* 提示された数字に対して親はヒット(数字と位置が正しい)とブロー(数字は正しいが位置が異なる)で判定を行い、子に判定結果を提示する
* 上記を繰り返して子は解答の4桁の数字を当てる

# コードの完成形
“`python:
import random
import tkinter as tk
import tkinter.messagebox as tkmb

def ButtonClick():
number_inputted = editbox_1.get()

flag = False
if len(number_inputted) != 4:
tkmb.showerror(“エラー”, “入力された値が4桁ではありません”)
else:
che

元記事を表示

Pythonを用いたプログラミング学習②|値の表示・変数・ループ処理・条件分岐・関数・モジュール

# 値の表示
画面に文字や数字を表示するには **print** を用いて以下のように記述する。
“`python:
print ( 値 )
“`

# 変数
変数は以下のように記述する。
“`python:
変数名 = 値
“`

# ループ処理
ループ処理は **while** もしくは **for**, **in** を用いて以下のように記述する。
“`python:
while 条件式:
条件成立時に実行する処理

for 変数名 in シーケンス:
“`
 シーケンスとは、例えば**リスト**を用いる場合は **for 変数名 in [1, 2, 3, …]** のようになり、**range関数**を用いる場合は **for 変数名 in range (開始値, 終了値+1)** となる。

# 条件分岐
条件分岐は以下のように記述する。
“`python:
if 条件文:
条件成立時に実行する処理
else:
条件不成立時に実行する処理
“`

# 関数
関数は以下のように記述する。
“`python:
def 関数名 (引数1, 引数

元記事を表示

Pythonのosモジュール完全ガイド:ファイルとディレクトリ操作のすべて

## はじめに

今回は知ると奥が深いosというPythonに初めからついているファイル操作に関するライブラリのご紹介をします。

## 1. osモジュールの概要

osモジュールは、Pythonでオペレーティングシステム(OS)に関連する機能を利用するための強力なツールです。ファイルやディレクトリの操作、環境変数の取得、プロセス管理など、様々な機能を提供します。このモジュールを使用することで、OSの違いを意識せずにプログラムを書くことができます。

まずは、osモジュールをインポートする方法を見てみましょう。

“`python
import os

# osモジュールの関数を使用する
current_dir = os.getcwd()
print(f”現在のディレクトリ: {current_dir}”)
“`

## 2. ディレクトリの操作

ディレクトリの操作は、ファイル管理やプログラムの構造化に欠かせません。osモジュールを使用すると、ディレクトリの作成、変更、削除が簡単に行えます。

以下のコードでは、新しいディレクトリを作成し、そのディレクトリに移動し、最後に元のデ

元記事を表示

.pyを.exe化する方法

# 必要な物
– Pythonファイル .py
– pip 環境
– nuitka
# インストール
nuitkaをインストールします。

~~~
pip install Nuitka
~~~
# 使い方

exe化したいpythonファイルのパスまで移動する

~~~:例/python/test.pyの場合
cd /python/
~~~
Nuitkaを実行
~~~
nuitka test.py
~~~
# オプション
末尾に追加することでそれぞれのオプションを追加できる

“`: 黒い画面を出さない
–windows-disable-console
“`
“`: pythonがない環境でも動作する
–standalone
“`
“`: ファイルを一つにまとめる
–onefile
“`
“`: tkinterを使用する
–enable-plugin=tk-inter
“`
“`:*.icoをアイコンとして扱う
–windows-icon-from-ico=”*.ico
“`
#
nuitkaはpythonファイルをc言語としてコンパイルするためプ

元記事を表示

DjangoでNone判定をして、HTMLの表示を切り替える方法(JavaScript活用)

## 問題の発生
Djangoのテンプレートで値がNoneだった場合、その情報をもとにHTMLの表示を切り替えたいことがある。例えば、データがあった場合は、試合結果を表示するようにし、データがない場合は、「データがありませんでした」と表示するようにしたい。
今回は以下のようにしたい
・match_countの値がnoneだった場合、match_count_sentenceのdisplayをnoneとする。
・match_countの値がnoneだった場合、match_result_sentence_noneのdisplayをblockとする。
“`HTML

{{ match_count }}戦でした。

試合がありませんでした

“`

## 解決策
pタグ自体にmatch_countの値を埋め込み、その値で判断する。

## 手順

1.pタグに値を埋め込む
“`HTML

元記事を表示

Qiita API を利用した投稿記事の閲覧数・いいね数の分析

## はじめに

会社の技術ブログ発信の手段として Qiita を利用している場合,技術ブログを成果として報告する際に,期間毎の閲覧数を定量指標として示すことが有効です.また,いいね数や閲覧数などを定量的に分析することで,どのような記事が人気であるかを把握することができます.

上記の目的を達成するために,[Qiita API](https://qiita.com/api/v2/docs) を利用して,指定の期間内の Qiita 投稿記事のいいね数・閲覧数などを取得し,集計する Python スクリプトを作成しました.集計コードは以下のリンクで公開しています.

https://github.com/ren8k/analyze_qiita

## 利用方法

– コードを clone し,`src` ディレクトリに移動します.

“`bash
git clone https://github.com/ren8k/anal

元記事を表示

GitHub Actionsを使ってGitHub上で管理している日報をプッシュするたびに「X API」で自動投稿する方法

# はじめに
皆さま初めまして。
HapinessChainというオンラインスクールで奮闘中のKeiと申します。

https://happiness-chain.com/

ここではメンターに日々学習した内容を日報として報告していますが、
学習内容の成果をXにも投稿したく今までは手動でGithub上にある日報をコピーしてポストしていました。

大した労力ではないですが、毎日となると案外手間になるので、
GitHubプッシュ時にコミットした内容が自動的にポストされるようにしました。

実際にやってみるとそこまで難しくなく実装できたので、
今回はGitHub Actionsを利用してポストを自動投稿するやり方を記載します。

環境構築と実装については以下の記事を参考にさせて頂いております。

https://qiita.com/hcrane/items/e048dae58d79d703959b

# X Developer Portalの登録
`X Developer Portal`は、開発者がXのAPIを利用してアプリケーションを構築するためのプラットフォームに

元記事を表示

FastAPIで機械学習モデルを扱うためのAPI設計について

## はじめに
ネットサーフィン中に「How to Use FastAPI for Machine Learning(機械学習のためのFastAPIの使い方)」という興味深い記事を見つけました。このブログ記事では、FastAPIを使って機械学習モデルを扱うための基本的な設定や実践的な使い方が解説されています。

https://blog.jetbrains.com/pycharm/2024/09/how-to-use-fastapi-for-machine-learning/

この記事に触発された形ではありますが、本記事ではFastAPIを用いて機械学習モデルに関するAPIを構築する際の設定や実装方法をまとめていきます。

## モデル定義
FastAPIで機械学習モデルを扱うには、アプリケーションの起動時に機械学習モデルをロードし、そのモデルをアプリケーション全体で管理する必要があります。

FastAPIでは、アプリケーションのライフスパンイベントを活用して、起動時にモデルをロードし、終了時にリソースを解放することができます。

https://fastapi.tiangolo.

元記事を表示

Docker コンテナに Python + Flask のアプリケーションを構築する

# Docker コンテナに Python + Flask の Webアプリケーションを構築する
[前回](https://qiita.com/Yu-Chihuahua/items/02cb5dfddb8b24393f14)の記事で、Windows に Docker の開発環境を構築しました。
この環境を利用して、Python + Flask の Webアプリケーションを構築していこうと思います。

## 今回のゴール
– Docker コンテナに Python + Flask のアプリケーションを構築する
– Windows からローカルホストでアクセスして「Hello World」を表示する

## ディレクトリ構成
今回のディレクトリ構成は下記のようになります。
“`web_app003“`という名前で Webアプリケーションを構築するものとします。
なお、ディレクトリ作成や、ファイルを編集するコマンドは説明から省きます。
“`shell:Ubuntu
/home/appuser

├── workspace
│   ├── docker-compose.yaml
│  

元記事を表示

PNGファイルを集めてアニメーションGIFとして保存する

## 表題のもの

– Windowsでバッチファイルとして使う想定
– 同じフォルダに名前が64padで始まるpngファイルを置いて実行する
– もしくはSendToやD&Dからコマンドライン引数でファイルを与えて実行する
– ファイル名の順番に合成する
– PILを使用
– FFmpegでやろうと思ったら意外に面倒だった
– [64パッドのレイアウト図示用MIDIモニタ](https://qiita.com/ucosarv/items/d642a70c19a57daf6945)で保存した画像ファイルの処理用

“`png_to_anigif.cmd.py
@python -x “%~f0” %* & pause & exit /b
# vim: set ft=python :

from pathlib import Path
import sys

from PIL import Image

OUTPUT_PATH = “output_ani.gif”
DURATION_MS = 800
PNG_PATTERN = “64pad*.png”

png

元記事を表示

ターミナルからWebへ!Streamlitで閏年判定アプリを作ってみよう

## ターミナルで動く閏年判定プログラム
まず、こちらがターミナル上で動作する基本的な閏年判定プログラムです。
“`python
def checkUruu(birth):
if birth < 1582: # 定義されていない年代 print(f'{birth}年は閏年という概念が存在しません') elif birth % 400 == 0: print(f'{birth}年は閏年です') elif birth % 100 == 0:# 平年 print(f'{birth}年は閏年ではありません') elif birth % 4 == 0: print(f'{birth}年は閏年です') # その他すべて平年 else: print(f'{birth}年は平年です') birth = int(input("西暦を入力してください: ")) checkUruu(birth) ``` ## 入れて欲しい要素 #### 1. web上での西暦インプット

元記事を表示

分析で利用するpandasのDataFrame(データの操作編)

前記事からの続きです。
前の記事はこちら

https://qiita.com/y_haruki/items/0143d830898667412356

利用するデータは説明のため以下のデータを利用します。
今回説明のため、適当に、日付を入れています。
また、わかりやすいように欠損値(pd.NA)を入れています。

“` py:
import pandas as pd

df = pd.DataFrame({‘DATE’:[‘2023/3/24′,’2024/3/24′,’2023/3/26′,’2024/3/26′,’2023/3/28′,’2024/3/30′,’2024/3/30’],
‘GOOG’:[158.56,157.21,167.31,168.42,167.19,pd.NA,168.83]
})
“`

行と列の値の関係が見やすいように、df.head(7)の実行結果を表示させます。
“` :実行結果
DATE GOOG
0 2023/3/24 158.56
1

元記事を表示

Streamlit 初心者講座

## 目次
– [概要](#概要)
– [使用例](#使用例)
– [環境構築](#環境構築)
– [よく使うもの](#よく使うもの)
– [実際に作ってみよう](#実際に作ってみよう)
– [ポートフォリオ or 自分の作りたいものを作ってみよう](#ポートフォリオ-or-自分の作りたいものを作ってみよう)

## 概要
**Streamlit**(ストリームリット)とは、PythonでWebアプリが作れるフレームワーク
特に、データサイエンスの分野で使われているらしいです。

https://streamlit.io/

**強み**
・爆速でWebアプリが作れる
・デプロイも爆速
・学習コストが低い

**弱み**
・独創性を出しづらい
・日本語の解説が少ない

## 使用例

Blenderチュートリアル動画検索アプリ

https://pablender.streamlit.app/

[github](https://github.com/kpab/paBlender)

## 環境構築
vscodeのターミナルで以下のコマンドを実行
“`zsh
pip install

元記事を表示

OTHERカテゴリの最新記事