Pandas は、プログラミング言語 Python において、データ解析を支援する機能を提供するライブラリです。特に、数表および時系列データを操作するためのデータ構造と演算を提供します。Pandas は BSD ライセンスのもとで提供されています。Pandas の 開発により、R 言語における DataFrame が扱える「ベクトル処理」の操作性と同等な機能が導入されました。
Wikipedia より引用、編集
空の Pandas のデータフレームを用意して、一行ずつデータを追加していきたい場面になると、いつも、あちこちネットで調べて、その場しのぎのやり方で対応してしまっています。
その場しのぎのやり方は、毎回まちまちなので、自分にとってベストなやり方を探索するために、今回たどり着いたやり方を備忘録にしました。もっとよいやり方が見つかれば、あらためて備忘録にしていきたいと考えています。
下記の OS 環境で動作確認をしています。
Fedora Linux 41 Workstation | x86_64 | |
Python | 3.13.1 | |
jupyterlab | 4.3.5 | |
numpy | 2,2,2 | |
pandas | 2.2.3 |
以下の作業は JupyterLab 上でおこなっています。
最初に必要なライブラリをインポートします。
import numpy as np import pandas as pd
列名になる要素名(キー)と空の要素からなる辞書型変数を用意し、Pandas のクラスメソッド from_dict を使って、列名だけ定義された空のデータフレームを作成します。さらに、データフレーム全体を object 型にキャストしておきかえておきます。追加するデータが数値だけであればキャストする必要はありません。
dict_columns = { 'A': [], 'B': [], 'C': [], } df = pd.DataFrame.from_dict(dict_columns) df = df.astype(object) df
一行追加します。
r = len(df) df.at[r, 'A'] = 1. df.at[r, 'B'] = 2 df.at[r, 'C'] = '' df
確認用にもう一行追加します。
r = len(df) df.at[r, 'A'] = 3 df.at[r, 'B'] = None df.at[r, 'C'] = np.nan df
各セルの型を確認すると以下のようになっています。
df.map(type)
参考サイト
- pandas.DataFrame.from_dict — pandas documentation
- pandas.DataFrame.astype — pandas documentation
- pandas.DataFrame.map — pandas documentation
にほんブログ村
#オープンソース