たなブログ 教養を高めて生涯資産を増やすブログ(`・ω・´)

【Python Coding】pandasでデータフレームを作成する方法

PR Pythonを学ぶ

こんにちは、TAKです。
今回は、pythonのpandasを用いてデータフレームを作成する方法を紹介していきます。

結論として「pandas.DataFrame」を用いればデータフレーム自体は簡単に作成出来ますが、どのような作成方法があるかを理解しておかないと、「データフレームを作ろうと思ったけど、イメージ通りのデータフレームをが作れない」といった状態になりかねません。

そこで今回は、以下4つのデータフレームを作りたいケースを想定し、各方法を紹介していきます。

・ 「ゼロベースから作成したい時」
・ 「辞書型を利用したい時」
・ 「numpyを使いたい時」
・ 「時間要素を加えたい時」

自分にとって作りやすい方法を見つける参考にでもしてみてください。

【pandas】データフレームをゼロベースから作成する方法

ライブラリのインポート(共通)

今回はpandasとnumpyを使います。

今回はpandasがメインとなりますが、numpyも使うのでインポートしておいてください。
pandasでデータフレームの作成が出来ます。
データフレームにすることで、表形式のデータとして扱うことが可能になり、データ分析しやすくなるといったメリットがあります。

「3×2」のデータフレームを作ってみる

冒頭で紹介したように、データフレームを作成するためには`pd.DataFrame()`を使います。
まずは、「3行2列」のデータフレームを作ってみましょう。
この後、「2行3列」のデータフレームを作るので、その違いを意識してみてください。

「3×2」のデータフレームを作成

コード自体は上記のようにシンプルですが、「DataFrame()」の中に注意してください。
データとカラム名を指定していますが、データはリストのようにカッコ[]で囲む必要があります。
カラム名を指定しないと、「0/1」のように表示されて何を示しているかわからないため、カラム名は指定しましょう。

「2×3」のデータフレームを作ってみる

次に、「2行3列」のデータフレームを作ってみましょう。

「2×3」のデータフレームを作成

以上のようにコーディングすることで、「2×3」のデータフレームが作れます。
データの内容を変更して、自由にデータフレームを作成出来るようにしてみてください。

基本的な使い方としては、このゼロベースから作成する方法さえわかっていれば十分ですが、個人的にはこの後に紹介する方法も意外と使うケースが多いので、興味ある方は参考にしてみてください。

【pandas】辞書型を利用してデータフレームを作成する方法

ここでは、「辞書型」を利用してデータフレームを作成する方法を紹介します。

個人的には、ゼロベースから作る方法も使いますが、この辞書型の方が使う頻度は高い気がします。
理由としては、{key:value}で作成した辞書を利用すると、{列名:データ}といった形でイメージ通りにデータフレームを作成出来るからです。

辞書型を用いてデータフレームを作成。感覚的にデータフレームの作成が可能。

ゼロベースから作成する方法と比較してもらえればわかりますが、「DataFrame()」の中が辞書型になっていますよね。このようにすることで、同じようなデータフレームを作成出来ます。
辞書型のキーがそのままデータフレームにおけるカラムになっているので、先ほどのようにカラム名を指定する必要もありません。

上記では辞書をDataFrameの中で直接作成していますが、既に存在する辞書を読み込む形でデータフレームを作成することも可能です。場合によっては、コッチの方が使えるかもしれませんね。

既に存在する辞書を読み込み、データフレームを作成

辞書データを読み込んでデータフレームを作成するためには、`pd.DataFrame.from_dict()`を使います。
作成した辞書変数(上記ではmy_dict)を読み込ませるだけなので、コチラも簡単にデータフレームが作れますね。

【pandas】numpyを利用してデータフレームを作成する方法

次に、numpyを使ってデータフレームを作成する方法を紹介します。
ここでは3×2の乱数を発生させて、それをデータフレーム化していきます。
まずは乱数を作成します。

numpyのrandom.randnを使って、標準正規分布に従う乱数を作成

次に、pandasのDataFrameを使って先ほどの変数(random)を指定するだけです。

乱数をデータフレーム化した結果

基本的な使い方がわかっていれば、さほど難しくないです。
カラム名は指定してあげてくださいね。

【pandas】データフレームに時間要素を入れる方法

最後におまけ程度ですが、日付のような時間要素をデータフレームに入れる方法を紹介しておきます。
日付を1行1行入力すると日が暮れるので、お悩みの方は参考にしてみてください。

時系列データをデータフレーム化

僕も最近知ったのですが、`pd.date_range()`を使うと簡単に日付データを扱うことが出来ます。
ここでは1カラムしか用意していませんが、実際のデータ分析時には他のデータフレームと結合するのがオススメです。

まとめ

今回はpythonのpandasを使ってデータフレームを作成する方法を紹介してきました。

作成自体は簡単ですが、ニーズに応じた作成方法を知っておくと、より選択肢やデータ分析の幅が広がって便利になります。

ゼロから簡易データを作成する力は、自分自身で仮説を立てて検証するプロセスでも必要になるので、是非身につけください。

では今回はこのへんで。