※記事内に商品プロモーションを含むことがあります。
はじめに
辞書内包表記を使って、PandasのSeries, DataFrameを少ないコード量で作成する。
辞書内包表記は、Pythonの標準機能であり、辞書(dict)型の変数を簡潔に作成できる。また、Pandasの配列データ型であるSeries, DataFrameは辞書から作成できる。
そのため、辞書内包表記を使って、Series, DataFrameを少ないコード量で作成する方法を示す。
以降では、Pandasを以下のようにインストールしていることを前提とする。
|
|
また、環境は以下の通り。
バージョン | |
---|---|
Python | 3.7.3 |
Pandas | 0.24.2 |
辞書内包表記
辞書内包表記の例を示す。0から9までの数字をキー、各キーを2倍にしたものを値とした辞書を得る。
|
|
実行結果
|
|
上記の例のように、リスト内包表記の[...]
を{...}
として、コロン:
を使ってキーと値を指定すると、辞書内包表記となる。
また、辞書内包表記ではif
やif~else
を使うことも可能である。詳細は以下の記事を参照。
辞書を使ったSerie, DataFrameの作成
PandasのSeriesの場合、辞書を引数として渡すと、キーをindexとするSeriesオブジェクトが生成される。
例
|
|
実行結果
|
|
一方、PandasのDataFrameの場合、値をリストである辞書を引数として渡すと、キーをcolumnsとするDataFrameオブジェクトが生成される。indexは0, 1, …と整数が割り振られる。
例
|
|
実行結果
|
|
ここで、辞書をDataFrameの引数として直接渡す場合、リストの長さは同じでなければならない。リストの長さが異なる場合にDataFrameを作成したい場合は、以下の記事を参照。
辞書をpd.DataFrameに変換 - Qiita
辞書内包表記を使ったSerie, DataFrameの作成
よって、辞書内包表記を使うと、Serie, DataFrameの作成を簡潔に記述できる。
まず、Seriesの例として、偶数を並べた配列を作成する。
|
|
実行結果
|
|
次に、DataFrameの例として、1行目に2の倍数、2行目に3の倍数を並べた配列を作成する。
|
|
実行結果
|
|