tkdataio プログラム仕様

tkdataio.py

軽量な表データ入出力ユーティリティ。

既存の tkVariousData/tkFit を置き換える目的ではなく、独立した小さな解析スクリプトを 素早く作るための補助モジュール。

tkdataio.py 技術ドキュメント

regression.tklsq.tkdataio.load_json(path: str | Path) object[ソース]

JSON形式のファイルを読み込み、Pythonオブジェクトとして返します。

パラメータ:

path -- Union[str, Path] 読み込むJSONファイルのパス。

戻り値:

object 読み込まれたJSONデータ (Pythonオブジェクト)。

例外:
  • FileNotFoundError -- 指定されたパスのファイルが見つからない場合に発生します。

  • json.JSONDecodeError -- ファイルの内容が有効なJSON形式でない場合に発生します。

regression.tklsq.tkdataio.read_table(path: str | Path, *, sheet_name=0) DataFrame[ソース]

CSV/TSV/TXT/XLSX ファイルを pandas.DataFrame として読み込みます。

指定されたファイルの拡張子に基づき、適切なpandasの読み込み関数を使用して表データをDataFrameとして読み込みます。 対応フォーマットはCSV (.csv)、TSV/TXT/DAT (.tsv, .txt, .dat)、XLSX/XLSM/XLS (.xlsx, .xlsm, .xls) です。

パラメータ:
  • path -- Union[str, Path] 読み込むファイルのパス。

  • sheet_name -- Union[int, str] Excelファイルの場合に読み込むシートの名前またはインデックス。デフォルトは最初のシート (0)。

戻り値:

pandas.DataFrame 読み込まれた表データ。

例外:
  • ImportError -- pandasまたはopenpyxlがインストールされていない場合に発生します。

  • ValueError -- サポートされていないファイル形式の場合に発生します。

regression.tklsq.tkdataio.read_xy(path: str | Path, x: int | str = 0, y: int | str = 1, *, sheet_name: int | str = 0, xmin: float = -1e+100, xmax: float = 1e+100, dropna: bool = True) Tuple[ndarray, ndarray, str, str][ソース]

表ファイルから x, y の2列を取り出します。

指定されたファイルから表データを読み込み、x軸とy軸に対応する2つの列を抽出します。 オプションで、x軸の値による範囲フィルタリングや、NaN値の除外を行うことができます。

パラメータ:
  • path -- Union[str, Path] 読み込むファイルのパス。

  • x -- ColumnKey (Union[int, str]) x軸データとして取り出す列のインデックスまたは列名。デフォルトは最初の列 (0)。

  • y -- ColumnKey (Union[int, str]) y軸データとして取り出す列のインデックスまたは列名。デフォルトは2番目の列 (1)。

  • sheet_name -- Union[int, str] Excelファイルの場合に読み込むシートの名前またはインデックス。デフォルトは最初のシート (0)。

  • xmin -- float xデータの最小値。この値未満のデータは除外されます。デフォルトは-1e100。

  • xmax -- float xデータの最大値。この値を超えるデータは除外されます。デフォルトは1e100。

  • dropna -- bool Trueの場合、xまたはyがNaN (非数) の行を除外します。デフォルトはTrue。

戻り値:

Tuple[numpy.ndarray, numpy.ndarray, str, str] フィルタリング後のx軸データ (NumPy配列)、フィルタリング後のy軸データ (NumPy配列)、 x軸の列名 (文字列)、y軸の列名 (文字列) のタプル。

例外:
  • ImportError -- pandasまたはopenpyxlがインストールされていない場合に発生します (read_table経由)。

  • ValueError -- サポートされていないファイル形式の場合に発生します (read_table経由)。

  • KeyError -- 指定されたキーに対応する列が見つからない場合に発生します (_column_from_key経由)。

regression.tklsq.tkdataio.save_json(path: str | Path, data: object, *, indent: int = 2) None[ソース]

データをJSON形式でファイルに保存します。

NumPyのデータ型 (ndarray, integer, floating) は、自動的にPythonの対応する型 (list, int, float) に変換されます。 また、__dict__ 属性を持つオブジェクトもシリアライズされます。 保存先のディレクトリが存在しない場合は自動的に作成されます。

パラメータ:
  • path -- Union[str, Path] 保存するJSONファイルのパス。

  • data -- object JSONとして保存するデータ。NumPy型はPython型へ変換されます。 __dict__ 属性を持つカスタムオブジェクトも対応します。

  • indent -- int JSON出力のインデントレベル。デフォルトは2。

戻り値:

None

例外:

TypeError -- JSONシリアライズできない型のオブジェクトが含まれている場合に発生します。

regression.tklsq.tkdataio.write_excel_tables(path: str | Path, tables: Mapping[str, object], *, index: bool = False) None[ソース]

複数テーブルを Excel の複数シートに保存します。

tables 引数で指定された複数のテーブルデータを、一つのExcelファイルの異なるシートに保存します。 tables の各値は、以下のいずれかの形式である必要があります: - pandas.DataFrame: そのままExcelシートとして書き込まれます。 - dict: キーを列名、値を列データとする辞書。pandas.DataFrame に変換されて書き込まれます。

スカラー値や異なる長さのリストも適切に処理され、欠損値は None で埋められます。

  • 2次元配列 (numpy.ndarray など): pandas.DataFrame に変換されて書き込まれます。

保存先のディレクトリが存在しない場合は自動的に作成されます。

パラメータ:
  • path -- Union[str, Path] 保存するExcelファイルのパス。

  • tables -- Mapping[str, object] シート名 (文字列) をキーとし、保存するテーブルデータを値とするマッピング。 値は pandas.DataFramedict (列名と値のペア)、または2次元配列 (numpy.ndarray など) のいずれかを想定。

  • index -- bool DataFrameのインデックスをExcelに出力するかどうか。デフォルトはFalse。

戻り値:

None

例外:

ImportError -- pandasまたはopenpyxlがインストールされていない場合に発生します。