抽出

Python サブフォルダ一覧を取得する。または,指定した拡張子のファイル一覧を取得する「pathlib」

本記事では、表題の2つの雛形コードを載せました。 ■1. カレントディレクトリ以下のサブディレクトリ一覧を取得したい場合 import pathlib # カレントディレクトリ以下のサブディレクトリを取得する get_dir_list = list(pathlib.Path('.').glob('**')) for …

Python 円グラフを作成する「matplotlib」

本記事では、下図のような円グラフを横並びで複数作成する雛形コードを載せました。 下図が使用したcsvデータです。 上記数値データは、次のリンク先の値を引用しました。http://www.stat.go.jp/naruhodo/4_graph/shokyu/obi-graph.html ■本プログラム #!/us…

Python 平均±3σの折れ線図を作成する「matplotlib」

本記事では、表題のことを成す雛形コードを記載しました。点は平均値で、上下に伸びてるエラーバーがここでは±3σを表します。 グラフ化する例題データは、下図のようなcsvファイルです。A列「month」をx軸にして、B列「data」に対してmonthのカテゴリ別に平…

Python 複数のインデックス番号の行を残すor削除する「Pandas」

本記事では、表題の雛形コードを載せました。 # 指定インデックス番号の行を残す場合 target_list = [1, 5, 503, 506] df1 = df.loc[target_list, :]# 指定インデックス番号の行を削除する場合df2 = df.drop(target_list) 例えば、下図のような506行のデータ…

Python カテゴリ別に色を指定して、散布図を作成する「JupyterLab向け」

'21/12/22更新:カテゴリの色を指定するコードを追記しました。 上図のデータ元は、下図のように横軸がA列, 縦軸がE列、カテゴリ変数はF列です。 ■本プログラム #!/usr/bin/env python # coding: utf-8 # In[1]: import pandas as pd df = pd.read_csv('test…

Python カテゴリ別にプロットする散布図を作成する(カテゴリデータが行方向に塊りである場合)「plt.scatter」

'21/05/26更新:コードの可読性を多少良くしました。 本記事では、例えば、下図のように「t=1, t=2, t=3」をカテゴリとした散布図を作成する雛形コードを載せました。 本プログラムの仕様について説明します。下図のようなcsvファイルがあって、Time_1, Time…

Python 複数のcsvをひとつのExcelファイルへ、各シートにて作成する「openpyxl」

本記事では、雛形コードを載せました。カレントフォルダ以下の全てのサブフォルダを探索し、拡張子「.csv」を検出してファイルパスをリストで取得します。そして、各ファイル名をシート名として、ひとつのエクセルファイル「.xlsx」へ保存します。 下図は、…

Python アンパック代入。覚えておくべき3例

アンパック代入とは、リストやタプルなどから複数の変数へ一括で展開して代入することです。本記事では、知っておくと便利な3つの代表例を載せます。 ■例1:アンパック代入する複数変数の内、最後の変数の頭にアスタリスクを付けると 、残りの要素をまとめて…

Python 列データを行方向へ連結する「Pandas」

本記事では、pandasを利用して列データを行方向へ連結する雛形コードを載せました。下図左が元データで、列名indexの値0,1,2を各グループとして、列名data1,data2,data3の値を行方向へ結合します。この時、重複する値がある場合はその行を削除して、ソートし…

Python 画像ファイルjpg/pngをsvgへ変換する「OpenCV × svgwrite」

'22/05/01更新:CADで読み込めるsvgを作成する雛形コードを載せました。 画像ファイルjpgやpng等は、ドット(画素)絵でラスタ形式と呼びます。そして、画像ファイルsvg(Scalable Vector Graphics)をベクタ形式と呼び、曲線でも解像度に依らずに滑らかに表…

Python 2値化フィルターによる輪郭の強調。そして座標を抽出する「OpenCV」

'22/07/03更新:グレースケールと輪郭強調だけでは対応できない場合の対策例として、その間の画像加工のコードの記述例を追記しました。・しきい値調整(トライアングル, 大津処理)・ヒストグラム平坦化・白黒反転・パイラテラルフィルタ・ノイズ除去 本記…

Python C++を活用して速度向上を図る「pybind11」×「CMake」

本記事では、PythonとC++を連携する雛形コードを載せました。具体的には、データを抽出するためのプログラムで、forループとその中にあるif文条件分岐の部分をC++に任せて高速化を図ります。仕組みは、C++でPythonモジュールを作成することでPythonスクリプ…

Python 2つのリストから共通でない要素を抽出してリスト化する

'21/12/17/更新:集合setを使用した場合の雛形も追記して、2通りの方法を記載しました。 ひとつ目は、リスト内包表記で出来ます。リストAとリストBの差をリスト化します。 import numpy as np A_list = np.arange(0, 10, 1).tolist() B_list = [0, 1, 2, 3, …

Python ひとつのcsvからX軸と「Y軸にしたい複数列」を指定して、ひとつの散布図を作成する

'22/05/03更新:コマンドライン向け、JupyterLab向けの雛形コードを載せました。 本記事では、下図のような散布図を作成するコードを載せました。フォントサイズ、散布図、折れ線図、ラベル、タイトル、凡例の指定ができて、jpgファイルに保存する仕様です。…

Python 複数のcsvからX,Y軸にしたい列名を指定して、ひとつの散布図を作成する

'21/06/15更新:グラフ化のオプション設定をいくつか追記しました。 複数のcsvファイルから下図のような散布図一枚を作成する雛形コードを載せました。 下図は、csvファイルの例です。一行目がヘッダーでなくても、データ開始行が2行目でなくても、pandasだ…

Python 複数ファイル名の番号順に、ファイルをソート(並び替え)する

'23/02/28更新:使い勝手を考慮して関数にしました。引数をファイルパスリストにして、戻り値はソートされたファイルパスリストで返します。 本記事では、下図のようにファイル名の番号順にソートする雛形コードを載せました。OS上では、ファイル名は文字列…

Python 数値型の列について、指定区間内にある値の行を全て抽出する「pandas」

'22/04/14更新:欠損値のある行を抽出したい場合を追記 指定区間内は、次のようにして抽出できます。orにしたい場合は、|(半角縦棒)です。 # 数値型の指定列の各要素について、指定区間にある値の行を全て抽出する df2 = df[(df['PRICE'] >= 17) & (df['PR…

Python リストから連続要素を二つずつ取り出す

'22/01/11更新 本記事では、リストから連続する要素を2つずつ順番に取り出す方法の雛形コードを載せました。次のリストを例に3つ示します。 x1_list = [45, 125, 312 ,497, 623, 1015] # 6つの要素 ■方法1. iter()とnext()を利用して、二つずつ取り出す # it…

Python 日付でif文条件分岐する

日付でif文条件分岐するには、日付型である必要があります。日付型は、正確にはdatetimeオブジェクトで文字列型の場合は次のようにして、strptimeメソッドで型変換してから使用します。 date_str = '2020/01/01' # 日付の文字列# dateオブジェクトへ変換する…

Python google-search-consoleの検索パフォーマンスで取得したURLからページタイトルを取得する「BeautifulSoup」

'21/05/12更新:「ページ.csv」内のヘッダー名のひとつ「ページ」が「上位ページ」に変更したため、それに対応。 Google Search Consoleは、自分のブログのアクセス状況を調べるツールです。Chromeなどのwebブラウザで操作し、「検索パフォーマンス」にある…

Python 「YouTube Data API」キーワード検索により動画チャンネルのランキングを作成する

本記事では、下図のようにURL、チャンネルタイトル、動画タイトル、閲覧数、いいね数などを抽出してcsvファイルに保存する雛形コードを載せました。APIキーは次のリンク先で取得できます。OAuth 2.0 トークンは不要です。https://console.developers.google.…

Python 「pandas」まとめ。テキストデータ処理の自動化で多用するコード一覧

'22/02/28更新:時間型(日付型)へ変換するコードを追記 本記事では、pandas(パンダス)を活用したデータ処理の頻出操作の雛形コードを載せました。下図はpandasによるデータ操作の一例です。Excel(エクセル)のような表形式で、行列データを自由自在に操…

Python 指定フォルダ内のファイル名、サイズ、日付の一覧を取得する方法

本記事では、指定したフォルダ内にあるファイル名とサイズ、日付の一覧を取得してcsvファイルへ保存する雛形コードを載せました。 例えば、下図のようにフォルダ内に複数のファイルがあります。この中から、拡張子「.exe」のファイルのみをリストで取得後、…

Python ピボットテーブルによるクロス集計。また、時系列データをグラフ化する「pandas」

pandasのpivot_tableで比較的簡単に処理できます。本記事では、データ処理の例として、愛知県の次のリンク先https://www.pref.aichi.jp/site/covid19-aichi/の中程にある新型コロナの「愛知県内の発生事例」のPDFファイル「8月まで [PDFファイル/357KB]」を…

Python 数万行のデータからグループ分けして抽出する

'21/08/07更新 pandasのgroupbyメソッドを用いることで、比較的容易に出来ます。 # 指定した列名にある要素でグループを作成する df_group = df.groupby('列名') # グループ数を数える場合 print(len(df_groupby.count())) 本記事では、その例題として、日本…

Python 行名と列名を指定して、その要素を抽出する「pandas」

'21/08/26更新:説明を補足しました。 本記事では、csvファイルをpandasで読み込み、指定した行名(index)と列名(columns)の要素を抜き出す雛形コードを載せました。行数や列数はいくらでも構いません。 下図のようなcsvファイルがあったとします。これを…

Python 環境変数Pathのパスを削除・追記する/指定した環境変数を削除・追記する「os.environ」

'20/07/23更新:汎用性を高めたコードに更新しました。 本記事では、例えば、アプリケーションの動作検証のため、一次的に環境変数を変更してテストしたい場合に有用です。具体的には、稼働中のPythonプロセスにおいて、環境変数Pathのパスを調べるだけでな…

Python リスト内の要素を指定した間隔「等差数列」でスライスする

偶数番目の要素をスライスする場合は、list[::2]、奇数番目は、list[1::2]とします。Pythonの配列(リスト)は0番目から始まることに注意です。実施例を下図に示します。 そして、list[::3]とすれば、下図のように2つ飛ばしの要素を抽出した新リストを作成で…

Python 画像中の文字認識をして、テキストへ出力する「pyocr/Tesseract-OCR」

光学文字認識の技術であるOCR(Optical Character Recognition)を使用します。 ▼必要なライブラリとソフトのインストール 1. pyocrをインストールするpip install pyocr 2. tesseract-OCRをインストールするWindowsは下記リンク先にexeファイルがあります。 H…

Python 株価データの欠損値をその前後の値で補完後、単純移動平均を算出する「pandas」

'20/05/16更新:移動平均計算を2つ→3つに増やし、計算によって生じた欠損値の行を削除してcsvファイルに出力する仕様に更新した。 本記事では、下図のような単純移動平均のグラフと、そのデータをcsvファイルで保存する雛形コードを載せています。 ●株価デー…