【pandas】DataFrameの作成方法

pandasでDataFrameを作成する方法について解説します。
目次
DataFrameの作成方法
pandasのDataFrameはインデックスが付与された2次元の配列です。pandasのSeriesと並んでpandasの中心的な型となっています。
DataFrameは、配列を操作するための多くの機能的なツールを提供してくれるため、データ分析のためのデータ加工等で非常に重要な位置づけのものとなっています。
以降では、DataFrameを使用するためのデータ作成方法について説明していきます。
辞書のリストから作成する
pandasのDataFrameは、以下のようにPython辞書のリストから作成することができます。
import pandas as pd
dic = [
{"attr1": 1, "attr2": 2},
{"attr1": 3, "attr3": 4},
{"attr2": 5, "attr3": 6},
]
print(dic, "\n")
# 辞書のリストからDataFrameを作成。欠損値がある場合はNaNが補完される
df = pd.DataFrame(dic)
print(df)【実行結果】
[{'attr1': 1, 'attr2': 2}, {'attr1': 3, 'attr3': 4}, {'attr2': 5, 'attr3': 6}]
attr1 attr2 attr3
0 1.0 2.0 NaN
1 3.0 NaN 4.0
2 NaN 5.0 6.0上記例のようにDataFrameでは、辞書のキーは列方向の名称として使用されます。行方向は0からのインデックスが付与されます。また、欠損するような値がある場合には、NaNが自動で補完されてDataFrameが作成されます。
Seriesから作成する
pandasのDataFrameは、以下のようにSeriesから作成することができます。
import pandas as pd # Seriesを作成する data = pd.Series([100, 200, 300, 400, 500], index=["A", "B", "C", "D", "E"]) print(data, "\n") # SeriesからDataFrameを作成する df = pd.DataFrame(data, columns=["attr1"]) print(df)
【実行結果】 A 100 B 200 C 300 D 400 E 500 dtype: int64 attr1 A 100 B 200 C 300 D 400 E 500
Seriesの辞書から作成する
辞書のリストから作成した時と同様に、Seriesの辞書からDataFrameを作成することができます。
import pandas as pd
attr1 = pd.Series([10, 20, 30, 40, 50], index=["A", "B", "C", "D", "E"])
attr2 = pd.Series([60, 70, 80, 90, 100], index=["A", "B", "C", "F", "G"])
dic = {"attr1": attr1, "attr2": attr2}
print(dic, "\n")
# Seriesの辞書からDataFrameを作成する
df = pd.DataFrame(dic)
print(df)【実行結果】
{'attr1': A 10
B 20
C 30
D 40
E 50
dtype: int64, 'attr2': A 60
B 70
C 80
F 90
G 100
dtype: int64}
attr1 attr2
A 10.0 60.0
B 20.0 70.0
C 30.0 80.0
D 40.0 NaN
E 50.0 NaN
F NaN 90.0
G NaN 100.0辞書のリストから作成する例に似ていますが、Seriesは辞書を一般化をしたような型ともいえるため、文字列インデックス等を持つような場合にも対応することができます。また、欠損するような値がある場合には、NaNが自動で補完されてDataFrameが作成されます。
2次元のNumPy配列(ndarray)から作成する
DataFrameは、以下のように2次元のNumPy配列(ndarray)から作成することができます。
import numpy as np
import pandas as pd
arr = np.arange(9).reshape((3, 3))
print(arr, "\n")
# 2次元のNumPy配列からDataFrameを作成する
df = pd.DataFrame(
arr, index=["A", "B", "C"], columns=["attr1", "attr2", "attr3"]
)
print(df)【実行結果】 [[0 1 2] [3 4 5] [6 7 8]] attr1 attr2 attr3 A 0 1 2 B 3 4 5 C 6 7 8
上記例で分かるように、DataFrameを作成する際には「index=」で行方向のインデックス名を、「columns=」で列方向のインデックス名を指定することで各行・列の名前を付けることができます。
まとめ
pandasでDataFrameを作成する方法について解説しました。
pandasのDataFrameはインデックスが付与された2次元の配列です。pandasのSeriesと並んでpandasの中心的な型となっています。
DataFrameは、配列を操作するための多くの機能的なツールを提供しており、pandasでのデータ分析の際は必ず使うといってもいい型となっています。ぜひ、作成方法をしっかりと理解して使えるようにしていただければと思います。
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。







