目次
PandasのDataFrameを作成する
今回はPandasのDataFrameを自分で作成する方法をご紹介します
データテーブルの形式を理解したうえで、自在にデータを作成してみましょう
pd.DataFrame([[0, 1, 2], [3, 4, 5], [6, 7, 8]],
index=['a','b','c'],
columns=['x','y','z'])
その前にDataFrameの仕組みを解説
DataFrameには3つの要素が含まれており、データを作るときに必要になってきます
- data:主役になるデータ
- index:インデックス(列)
- columns:カラム(行)
この3つを指定することで、DataFrameを作成していきます
indexとcolumnsは、無理やり指定しなくても問題ありません
指定が無い場合は「0」から始まる連番「0.1.2.3…」になります
DataFrameを作成する
DataFrameを作成するためには、その名前の通りpd.DataFrameを利用します
そして上記で説明した3つのパラメータを指定してください
ただしいろいろな作成方法があるので、使い勝手の良い方法を覚えてください
事前にpandasをインポートしておきましょう
import pandas as pd
リストのデータを指定する
[ ]リスト形式で情報を指定します
データ部分のみ(indexとcolumnsは数値の連番)になります
pd.DataFrame([1,2,3])
リストの変数を指定する
直接記述するのではなく、一度変数(num)に代入して指定することも可能です
num = [1,2,3]
pd.DataFrame(num)
Seriesを指定する
同じPandasのSeries(シリーズ)を指定することができます
num = pd.Series([1,2,3])
pd.DataFrame(num)
Numpyのarrayを指定する
Numpyのarrayを指定することができます
ランダムな情報を取得するnp.random.randを使って、array形式を指定します
import Numpy as np
num = np.random.rand(3)
pd.DataFrame(num)
index / columnsを指定する
dataの「1,2,3」に対して、列名・カラム名を指定します
indexとcolumnsの2つを続けて指定します
pd.DataFrame([1,2,3],
index=['a','b','c'],
columns=['x'])
列名を指定して新規作成する
上記ではdataとcolumnsを別々に指定しましたが、列名を指定してデータを追加することができます
{ }辞書型で記述しましょう
pd.DataFrame({'x':[1,2,3]})
複数の列を新規作成する
列名とデータをセットで指定する方法を,カンマでつなげることで、複数列の二次元DataFrameを作成可能です
pd.DataFrame({'x':[1,2,3],
'y':[4,5,6],
'z':[7,8,9]})
色々なデータの格納
さらに単一の値を指定すると、全ての行でデータが格納されます
また「数値」以外に「文字列」も指定可能です
pd.DataFrame({'数値':[1,2,3],
'数値(単一)':0,
'文字列':['いち','に','さん']})
二次元配列のリストを指定する
二次元のリストを指定することで、複数列のDataFrameを作成することができます
indexとcolumnsをデータの形式(行数x列数)に合わせて指定してください
pd.DataFrame([[0, 1, 2], [3, 4, 5], [6, 7, 8]],
index=['a','b','c'],
columns=['x','y','z'])
一次元の作成方法と同じく、SeriesやNumpyのarrayでも同じように二次元のデータ型で指定が可能です
ランダムな数値を指定する
Numpyの機能を利用し、二次元配列のランダムな数値を使ってDataFrameを作成します
randintで「1」から「100」までの数値を、「10x10」の配列でデータを生成します
import Numpy as np
pd.DataFrame(np.random.randint(1,100,[10,10]))
まとめ
今回はDataFrameを作成する方法をご紹介してきました
indexやcolumnsの指定が少し厄介ですが、ぜひ使ってみてください
またDataFrameは色々な形に変形することができるので、mergeやconcatの記事もご覧ください
【Python】merge|2つのデータを結合する方法 【Python】concat|複数のデータを連結する