今回は、PythonのPandasでDataFrameを作成する方法についてご紹介します。
Pandasとは
Pythonでデータ分析を行う際によく利用されるライブラリの一つにPandasがあります。
多種多様なデータソースからデータを読み込み、高速かつ柔軟に処理できる点が特徴です。
Pandasでは二次元の表形式データを扱うDataFrameという構造が基本となります。
DataFrameを使うことで、行や列といった表形式の操作を容易に行えます。
DataFrameの作成方法
DataFrameは、さまざまな形式のデータから作成できます。
代表的な作成方法として、以下のようなケースがあります。
- 辞書型:キーを列名、値をリストとして渡す方法
- リストのリスト:複数のリストをまとめてDataFrameにする方法
- NumPy配列:NumPyの配列を利用する方法
- リストの辞書:各行を辞書形式で表し、それらをリストにまとめる方法
- 外部ファイル:CSVやExcelファイルなどから読み込む方法
1. 辞書型からの作成
もっとも手軽な方法の一つが、辞書型を用いたDataFrameの作成です。
1 2 3 4 5 6 7 8 9 10 11 12 |
import pandas as pd # 辞書型データの作成 data = { 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['Tokyo', 'Osaka', 'Kyoto'] } # 辞書型からDataFrameを作成 df = pd.DataFrame(data) print(df) |
Name Age City
0 Alice 25 Tokyo
1 Bob 30 Osaka
2 Charlie 35 Kyoto
各キーが列名、各値が対応する列のデータとして扱われます。
2. リストのリストからの作成
次に、リストのリストを利用する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 |
import pandas as pd # リストのリストでデータを用意 data = [ ['Alice', 25, 'Tokyo'], ['Bob', 30, 'Osaka'], ['Charlie', 35, 'Kyoto'] ] # columnsパラメータで列名を指定 df = pd.DataFrame(data, columns=['Name', 'Age', 'City']) print(df) |
Name Age City
0 Alice 25 Tokyo
1 Bob 30 Osaka
2 Charlie 35 Kyoto
リストの順番とcolumnsで指定する列名の順序が一致している点に注意してください。
3. NumPy配列からの作成
NumPy配列を利用してDataFrameを作成する場合です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import pandas as pd import numpy as np # NumPy配列を作成 data = np.array([ ['Alice', 25, 'Tokyo'], ['Bob', 30, 'Osaka'], ['Charlie', 35, 'Kyoto'] ]) # NumPy配列を渡してDataFrameを作成 df = pd.DataFrame(data, columns=['Name', 'Age', 'City']) print(df) |
Name Age City
0 Alice 25 Tokyo
1 Bob 30 Osaka
2 Charlie 35 Kyoto
NumPy配列の場合、データ型が統一されるため、文字列と数値が混在するとすべて文字列として扱われることがあります。
4. リストの辞書からの作成
リストの辞書を用いる場合は、行単位で辞書を作成し、それらをリストにまとめます。
1 2 3 4 5 6 7 8 9 10 11 12 |
import pandas as pd # 各行を辞書として格納 data = [ {'Name': 'Alice', 'Age': 25, 'City': 'Tokyo'}, {'Name': 'Bob', 'Age': 30, 'City': 'Osaka'}, {'Name': 'Charlie', 'Age': 35, 'City': 'Kyoto'} ] # リストの辞書からDataFrameを作成 df = pd.DataFrame(data) print(df) |
Name Age City
0 Alice 25 Tokyo
1 Bob 30 Osaka
2 Charlie 35 Kyoto
行ごとに辞書のキーが異なる場合、含まれないキーの列にはNaNが自動的に補われます。
5. 外部ファイルからの作成
CSVファイルやExcelファイルを読み込むことでDataFrameを作成することもできます。
5.1 CSVファイルからの読み込み
1 2 3 4 5 |
import pandas as pd # CSVファイルの読み込み df = pd.read_csv('data.csv', encoding='utf-8') print(df) |
エンコーディングや区切り文字(デリミタ)に注意が必要です。
5.2 Excelファイルからの読み込み
1 2 3 4 5 |
import pandas as pd # Excelファイルの読み込み df = pd.read_excel('data.xlsx', sheet_name='Sheet1') print(df) |
Excelファイルを扱う場合、事前にopenpyxlやxlrdなどのライブラリがインストールされている必要があります。
よくあるエラーや注意点
DataFrameを作成するうえで気をつけるべき点や、よくあるエラーを以下に示します。
- データ型の混在:文字列と数値が同じ列にある場合、自動で文字列型に変換されることがあります。必要に応じてdtype指定や型変換を行いましょう。
- 欠損値の発生:辞書のキーが揃わない場合や外部ファイルに空欄がある場合、NaNが発生します。fillnaやdropnaで適切に処理します。
- インデックスの設定:デフォルトの数値インデックス以外に、ユニークな列をインデックスに設定することが可能です。set_indexなどを活用すると便利です。
- パフォーマンス:大規模データでは、必要な列だけを読み込むなど効率的な方法を検討しましょう。
- 外部ライブラリの依存関係:Excelファイルの読み込みには追加ライブラリが必要になる場合があります。事前にインストールされているか確認してください。
まとめ
PandasのDataFrameは、多様な形式のデータを扱うための便利な構造です。
辞書型やリスト、外部ファイルなど、様々な手段で自由にDataFrameを作成できます。
注意点を押さえておくことで、柔軟かつ効率的なデータ処理が可能になります。