はじめに
Pythonに関連して投稿した記事をまとめる。
Pythonはライブラリが充実しており、何かやりたいことがあれば、ほとんどの場合に対応できる便利な言語。普段組み込みのC言語でROM.RAMや処理時間を常に意識してガリガリコード書いている自分からすると、数行でやりたいことが書けちゃうPythonはストレスフリーで勉強していても楽しい。
目次
分類 | 概要 |
---|---|
エクセル処理・PDF処理・ファイル処理 | PandasやOpenpyxlでのエクセル処理や、テキストファイルの読み書き等。 |
仕事効率 | 仕事で使うとちょっと便利な小技。 |
ファイナンス | yfinanceなど、株関連。 |
Kivy関連 | GUIライブラリKivyの使い方。 |
Androidアプリ関連 | Kivyを使ったアンドロイドアプリ。 |
Raspberrypi関連 | 電子工作関連。MicroPython。 |
文字列処理 | 文字列や数値の整形、変換処理。 |
Pandas関連 | Pandas、表計算関連 |
Python基本 | Python文法の基本。 |
Tips | よく使う小技。 |
エクセル処理・PDF処理・ファイル処理
- ExcelやCSVファイルのデータ処理はPandasで。
- OpenPyXLでExcelファイル読み書き。
- PythonでPDFファイルの読み書きマージやパスワード解除したりする。
- PDFから表を抽出し、DataFrameやMarkDown形式に加工する。
- Pythonのファイルアクセスから圧縮・解凍まで。
- QiitaのAPIを使って集計結果をExcelへ出力する。
ファイナンス
仕事効率
- Pythonでクリップボードをリンク付き(HTML形式)加工する。
- SharePointのURLエンコードかかったリンクを日本語に戻す(Python版)
- Python上でPowerShellを実行する
- PythonでUSB機器リストを取得して有効・無効化する。
Androidアプリ関連
- PythonでAndroidアプリを作る。
- PythonでAndroidスマホの各種センサー情報を取得する。
- PythonでAndroidスマホのシリアル通信をする。
- PythonのKivyのカラーパレットを作ってみる
Kivy関連
Raspberrypi関連
- Raspberrypi pico(ラズパイピコ)を MicroPython でペリフェラル制御する。
- Raspberry Pi のペリフェラル制御(GPIO/I2C/SPI)
- Raspberry Pi のUARTを使う場合の注意点
- Pythonのpyserialとthreadingでリアルタイムなシリアル通信をする。
文字列処理
- Pythonのf文字列
- replace/re.subで文字列変換
- Pythonの検索処理 search match
- Python文字列の比較や変換
- Pythonの日付・時刻処理
- Pythonで数値・数値文字列・バイナリ変換
- Pythonでエンディアン変換
- Python小ネタASCII⇔HEX文字列変換
- re.compileは何に使う?
- 正規表現「?」の使い道
Pandas関連
- PandasのDataFrameの初期化や結合
- Pandasの要素指定・置換
- Pandasでよく使う23選
- Pandasのapplyを使えば表計算処理を簡単にできる。
- ExcelやCSVファイルのデータ処理はPandasで。
Python基本
- Pythonの反復処理いろいろ
- Pythonの内包表記
- Pythonのリスト操作と初期化
- Pythonの辞書(dictionary)の操作と初期化
- Pythonのスライスは便利。
- Pythonの例外回避。
- Pythonでライブラリやクラスの使い方を知りたい。
Tips
内容 | 文法 |
---|---|
分離する | split/ splitlines()/ re.split() |
リストの重複をなくす | list(set('リスト')) |
nanを一括変換する | df=df.fillna('変換文字列') |
分離する
#--------------------------------------
# 分離:str.split(sep=None, maxsplit=-1)
#--------------------------------------
str = 'a iu e o\n ka ki kuke ko'
lis = str.split() #改行や空白文字で分離
print(f'# {lis=}')
# lis=['a', 'iu', 'e', 'o', 'ka', 'ki', 'kuke', 'ko']
str = 'あ,いう,え,お,,か,き,,く,,,け,こ'
lis = str.split(',') #特定文字で分離連続する場合は、空白文字として分離
print(f'# {lis=}')
# lis=['あ', 'いう', 'え', 'お', '', 'か', 'き', '', 'く', '', '', 'け', 'こ']
str = 'さ-し-す-せ-そ'
lis = str.split('-',2) #分離回数指定
print(f'# {lis=}')
# lis=['さ', 'し', 'す-せ-そ']
#--------------------------------------
# 改行分離:str.splitlines(keepends=False)
#--------------------------------------
str = 'aiueo\nかきこけこ\n\nさしすせそ\nたち つてと'
lis = str.splitlines()
print(f'# {lis=}')
# lis=['aiueo', 'かきこけこ', '', 'さしすせそ', 'たち つてと']
#--------------------------------------
# 正規表現分離:re.split(pattern, string, maxsplit=0, flags=0)
#--------------------------------------
import re
str = 'あ,い-う.え|お'
lis = re.split('[.,-|]',str) #[]で複数パターン
print(f'# {lis=}')
# lis=['あ', 'い', 'う', 'え', 'お']
str = 'あ,い,,う,,,え,,,,お'
lis = re.split(r',+',str) #,を複数回
print(f'# {lis=}')
# lis=['あ', 'い', 'う', 'え', 'お']
リストの重複をなくす
lis =[0,1,2,3,4,5,6,7,8,9,1,1,1,0,0,0,4,5,6,7,11,12,13,10,0]
lis = list(set(lis)) # set()で辞書化して、ダブりをなくして、それを list()でリスト化
print(f'# {lis=}')
# lis=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
nanを一括変換する
import pandas as pd
import numpy as np
df = pd.DataFrame(
{'A':[0,1,2]
,'B':[np.nan]*3})
print(df)
# A B
# 0 0 NaN
# 1 1 NaN
# 2 2 NaN
df=df.fillna(0)
print(df)
# A B
# 0 0 0.0
# 1 1 0.0
# 2 2 0.0