抽出

Python カテゴリ変数を作成し、散布図を作成する

本記事では下図の凡例(legend)のRMのようにカテゴリ変数を指定数に分割して作成する。またそれを散布図にする雛形コードを載せました。 下図中にある列名「RM」のデータから、列名「label」というカテゴリ変数を作成します。それを上図のようにカテゴリ別…

Bash 変数から指定範囲の文字列を抜き出す

本記事では、例えば、data_12.csvの文字列変数に対して、6番目から2つまでの文字列12を抽出する雛形コードを載せました。下図はその結果例です。12を抜き出して、拡張子に.txtをしてシンボリックリンクを貼っています。 ■本プログラム #!bin/bash my_file="d…

Python 交互作用図を作成する「interaction_plot」

'22/06/10更新:グラフの体裁のため、雛形コードを多少編集しました。 本記事では、下図のような交互作用図を作成する雛形コードを載せました。縦軸は、出力指標Yのデータ平均で,横軸と凡例は入力因子Xです。 例えば、凡例によって線の傾きが異なることがあ…

Python ファイルパスからフォルダパス,フォルダ名,ファイル名,拡張子,拡張子なしファイル名を取得する「pathlib」

'21/12/11更新:新しいファイルパスをリストから作成する方法に変更した。またzip圧縮するコードも追記。 本記事では、下図のようにファイルパスからフォルダパス,フォルダ名,ファイル名,拡張子,拡張子なしファイル名を取得する等の雛形コードを載せまし…

Python 複数のテキストファイルを兎に角、ひとつのファイルに書き出す

下図のように、行列数の異なるcsvファイルが複数ある。 本プログラムを実行すると、兎に角、下図のようにひとつのテキストファイルに書き込みます。 ■本プログラム #!/usr/bin/env python # coding: utf-8 # In[1]: import glob import pandas as pd file_li…

Python 2列からなるデータに対して、カテゴリ別にデータを抽出する「pandasのgroupby×apply」

下図のような2列のデータがある。Label列には A, B, Cという3つのカテゴリがあり、それぞれに対応しているNo列の数値をリストで抽出する雛形コードを載せました。 本プログラムを実行すると、下図のようなデータを得ることができます。A, B, Cに属している数…

Python リストからn個ずつ取り出す

下図のようなリストがある。要素は15個。 本プログラムを実行すると、下図のように4つずつ取り出してタプルに格納します。 ■本プログラム import numpy as np # Noリスト化を作成する No_list = np.arange(1, 16, 1).tolist() print(No_list) # リストからn…

Python Excelセルの行列範囲を自動判別して抽出する「openpyxl」

本記事では、下図のようにエクセルファイル中の先頭行ではなくて、中途半端な位置に表データ(行列範囲)がある場合に、特に適用します。この行列範囲を自動で判別して、抽出してpandasデータフレーム形式へ読み込む雛形コードを記載しました。 その仕組みは…

Python 指定列に対して、リスト内の値と一致する要素がある行を複数一括で抽出する「Pandasのquery」

例題データは、機械学習でお馴染みのアイリスデータセットを用いました。150行×5列のデータです。 本記事でやりたいことは、例えば、sepal_lengthという列(カラム)に対して、5, 5.5, 6の値である行を全て抽出したい場合に適用し、次のようにします。リスト…

Python 指定パス内のフォルダ容量の一覧表を作成する

本記事では、指定したパス内にある全てのフォルダ(ディレクトリ)の容量サイズを取得して、降順にソートしてcsvファイルへ出力する雛形コードを載せました。 下図がその実施例で、指定したパス「D:/program/python/98_抽出」内のフォルダ毎の容量をランキン…

Python 列名部分一致で列を複数選択する「pandasでstr.contains()」

列名が山ほどあって、列名(カラム名)に特定の文字列がある列だけを抽出したい場合もあるかもしれません。その雛形コードを載せました。 例題データは、機械学習データセットで有名なアイリスを用いました。これのcsvはネットで検索すれば出てきて、例えば…

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 file_path = 'test_data…

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オブジェクトへ変換する…