( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】DataFrameを作成する簡単な方法をご紹介

PandasのDataFrameを作成する

今回はPandasDataFrameを自分で作成する方法をご紹介します

データテーブルの形式を理解したうえで、自在にデータを作成してみましょう

pd.DataFrame([[0, 1, 2], [3, 4, 5], [6, 7, 8]],
            index=['a','b','c'],
            columns=['x','y','z'])
PandasのDataFrameを作成する

その前にDataFrameの仕組みを解説

DataFrameには3つの要素が含まれており、データを作るときに必要になってきます

  • data:主役になるデータ
  • index:インデックス(列)
  • columns:カラム(行)
PandasのDataFrameのdata/index/columns

この3つを指定することで、DataFrameを作成していきます

indexcolumnsは、無理やり指定しなくても問題ありません

指定が無い場合は「0」から始まる連番「0.1.2.3…」になります

DataFrameを作成する

DataFrameを作成するためには、その名前の通りpd.DataFrameを利用します

そして上記で説明した3つのパラメータを指定してください

ただしいろいろな作成方法があるので、使い勝手の良い方法を覚えてください

事前にpandasをインポートしておきましょう

import pandas as pd

リストのデータを指定する

[ ]リスト形式で情報を指定します

データ部分のみ(indexとcolumnsは数値の連番)になります

pd.DataFrame([1,2,3])
PandasのDataFrameでリスト形式で作成

リストの変数を指定する

直接記述するのではなく、一度変数(num)に代入して指定することも可能です

num = [1,2,3]
pd.DataFrame(num)
PandasのDataFrameをリストの変数で作成

Seriesを指定する

同じPandasSeries(シリーズ)を指定することができます

num = pd.Series([1,2,3])
pd.DataFrame(num)
PandasのDataFrameのSeriesで作成

Numpyのarrayを指定する

Numpyarrayを指定することができます

ランダムな情報を取得するnp.random.randを使って、array形式を指定します

import Numpy as np
num = np.random.rand(3)
pd.DataFrame(num)
PandasのDataFrameをNumpyのarrayで作成

index / columnsを指定する

dataの「1,2,3」に対して、列名・カラム名を指定します

indexcolumnsの2つを続けて指定します

pd.DataFrame([1,2,3],
             index=['a','b','c'],
             columns=['x'])
PandasのDataFrameのindexとcolumnsの指定

列名を指定して新規作成する

上記ではdatacolumnsを別々に指定しましたが、列名を指定してデータを追加することができます

{ }辞書型で記述しましょう

pd.DataFrame({'x':[1,2,3]})
PandasのDataFrameの列名を指定して新規作成

複数の列を新規作成する

列名とデータをセットで指定する方法を,カンマでつなげることで、複数列の二次元DataFrameを作成可能です

pd.DataFrame({'x':[1,2,3],
              'y':[4,5,6],
              'z':[7,8,9]})
PandasのDataFrameの複数の列を作成

色々なデータの格納

さらに単一の値を指定すると、全ての行でデータが格納されます

また「数値」以外に「文字列」も指定可能です

pd.DataFrame({'数値':[1,2,3],
              '数値(単一)':0,
              '文字列':['いち','に','さん']})
PandasのDataFrameのいろいろなデータを格納

二次元配列のリストを指定する

二次元のリストを指定することで、複数列のDataFrameを作成することができます

indexcolumnsデータの形式(行数x列数)に合わせて指定してください

pd.DataFrame([[0, 1, 2], [3, 4, 5], [6, 7, 8]],
             index=['a','b','c'],
             columns=['x','y','z'])
PandasのDataFrameを二次元配列のリストで作成

一次元の作成方法と同じく、SeriesNumpyarrayでも同じように二次元のデータ型で指定が可能です

ランダムな数値を指定する

Numpyの機能を利用し、二次元配列のランダムな数値を使ってDataFrameを作成します

randintで「1」から「100」までの数値を、「10x10」の配列でデータを生成します

import Numpy as np
pd.DataFrame(np.random.randint(1,100,[10,10]))
PandasのDataFrameをランダムな数値で作成する
【Python】ランダムな数値を作り出す方法|random

まとめ

今回はDataFrameを作成する方法をご紹介してきました

indexcolumnsの指定が少し厄介ですが、ぜひ使ってみてください

またDataFrameは色々な形に変形することができるので、mergeconcatの記事もご覧ください

【Python】merge|2つのデータを結合する方法 【Python】concat|複数のデータを連結する
お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。