DataFrameの作成
pandasでデータを操作するときに主に使用することになる(と思っている)DataFrameについてまとめていきます。
今回は主にDataFrameの作成方法についてです。こちらを参考にしています。
DataFrameコンストラクタ
DataFrameクラスは大まかにいえばデータベースのテーブル、2次元配列に相当するものです。概ね以下のような構成になっています。
・data:データ本体です。
・index:行名に相当するものです。
・columns:列名に相当します。
・dtype:テーブル内にあるデータの型です。
DataFrameのコンストラクタは以下のような引数を取ります。
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
・data
型 : Numpy配列、配列、辞書型、DataFrame
データの部分に相当します。通常の配列のほか、Numpy配列、辞書、DataFrameを引数として取ることができます。
・index
型 : Indexオブジェクト、配列
行ごとのラベルを指定します。指定がない場合は、0からの連番になります。
・columns
型 : Indexオブジェクト、配列
列ごとのラベルを指定します。指定がない場合は、0からの連番になります。
・dtype
型 : dtype
データの型を指定します。1つしか指定できません。指定がない場合は推測します。
・copy
型 : bool
データからコピーするかどうかを指定する、とのことですが良く分からないので、もう少し調べて追記します。
dtypeアトリビュートでデータ型を、shapeアトリビュートでテーブルのサイズを調べることができます。
DataFrame作成
配列に相当するデータを引数に取ることで作成できます。何も指定しなければ空のDataFrameになります。
pythonコード
# 空のDataFrame
df = pandas.DataFrame()
print(df)
出力
Empty DataFrame
Columns: []
Index: []
DataFrame作成(2次元配列)
2次元配列からDataFrameを作成して、データ型とサイズを確認してみます。
pythonコード
# 2次元配列を準備
list_data = [
[1, "A", 1.23],
[2, "B", 2.34],
[3, "C", 3.45],
[4, "D", 4.56],
[4, "E", 5.67],
]
# 2次元配列からDataFrameを作成
df = pandas.DataFrame(list_data)
print(df)
出力
0 1 2
0 1 A 1.23
1 2 B 2.34
2 3 C 3.45
3 4 D 4.56
4 4 E 5.67
pythonコード
# dtypeを確認します
print(df.dtypes)
print("--------")
# サイズを確認します
print(df.shape)
出力
A int64
B int64
C int64
dtype: object
--------
(3, 3)
DataFrame作成(辞書型)
辞書型からDataFrameを作成することもできます。このとき辞書のキーはcolumnsとなります。
pythonコード
# 辞書型データからDataFrameを作成
dict_data = {
"a":[1, 2, 3],
"b":[4, 5, 6]
}
df = pandas.DataFrame(dict_data)
print(df)
出力
a b
0 1 4
1 2 5
2 3 6
DataFrame作成(リスト内の辞書型データ)
辞書型データを入れたリストから作成することもできます。
pythonコード
# リスト内の辞書型データからDataFrameを作成
# それぞれの辞書型データに対して、わざとキーのデータにしています。
# 該当するdataがない場合は、"NaN"が代入されます。
dict_in_list = [
{"a":123, "b":234, "c":345},
{"a":"abc", "b":"bcd", "d":"cde"}
]
df = pandas.DataFrame(dict_in_list)
print(df)
出力
a b c d
0 123 234 345.0 NaN
1 abc bcd NaN cde
DataFrame作成(辞書内の辞書型データ)
辞書の入れ子のデータから作成することもできます。
pythonコード
dict_data = {
"A":{"a":123, "b":234, "c":345},
"B":{"a":456, "b":567, "c":678},
"C":{"a":789, "b":890, "c":901}
}
df = pandas.DataFrame(dict_data)
print(df)
出力
A B C
a 123 456 789
b 234 567 890
c 345 678 901
index, columnsを指定して作成
データとは別にindex, columnsを指定します。
pythonコード
# index, columnsを指定して、DataFrameを作成
df = pandas.DataFrame(list_data,
index=["row1", "row2", "row3", "row4", "row5"],
columns=["col1", "col2", "col3"])
print(df)
出力
col1 col2 col3
row1 1 A 1.23
row2 2 B 2.34
row3 3 C 3.45
row4 4 D 4.56
row5 4 E 5.67
まとめ
・DataFrameはpandasでデータ操作するときの基本的なクラスになります。
・データそのもの以外にも、indexやcolumnsで行列ラベルを指定することができます。
・行列ラベルの指定が無ければ0からの連番で付与されます。
・次回以降はDataFrameの各種操作についてまとめていきます。
この記事が気に入ったらサポートをしてみませんか?