Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python】辞書とリストからPandasのDataFrameを作成する方法

Pandasは、データ処理やデータ分析の分野で最も広く利用されているPythonライブラリの一つです。本記事では、Pythonの辞書(dict)とリストからpandasのDataFrameを作成する方法を、具体的なコード例とともにわかりやすく解説します。

リストを値に持つ辞書からDataFrameを作成する

辞書は「キー」と「値」のペアで構成されるデータ構造です。キーに対してリストが値になっているPythonの辞書がある場合、その辞書をそのままpd.DataFrame()メソッドに渡すだけで、pandasのデータフレームを作成できます。

このとき、各キーが列名になり、対応するリストの要素がその列のデータとして格納されます。

コード例

import pandas as pd

# 試験スケジュールの辞書
Exam_Schedule = {
    'Exam Day': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'],
    'Exam Subject': ['Chemistry', 'Physics', 'Maths', 'English', 'Biology'],
    'Exam Time': ['2 PM', '10 AM', '11 AM', '1 PM', '3 PM']
}

# 辞書からDataFrameを作成
Exam_Schedule_df = pd.DataFrame(Exam_Schedule)

print(Exam_Schedule_df)

実行結果

上記のコードを実行すると、次のような結果が出力されます。

  Exam Day Exam Subject Exam Time
0      Mon    Chemistry      2 PM
1      Tue      Physics     10 AM
2      Wed        Maths     11 AM
3      Thu      English      1 PM
4      Fri      Biology      3 PM

このように、辞書の各キーが自動的に列名として認識され、リストの要素が縦方向に並んだ表形式のデータフレームが生成されていることが確認できます。

インデックスを指定してDataFrameを作成する

pd.DataFrame()では、index引数を指定することで、行ラベル(インデックス)を自由に設定できます。以下の例では、試験科目と試験時間だけを持つ辞書からデータフレームを作成し、試験日を行ラベルとして割り当てています。

コード例

import pandas as pd

# 試験科目と試験時間の辞書
Exam_Schedule = {
    'Exam Subject': ['Chemistry', 'Physics', 'Maths', 'English', 'Biology'],
    'Exam Time': ['2 PM', '10 AM', '11 AM', '1 PM', '3 PM']
}

# index引数で試験日をインデックスとして指定
Exam_Schedule_df = pd.DataFrame(
    Exam_Schedule,
    index=['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
)

print(Exam_Schedule_df)

実行結果

上記のコードを実行すると、次のような結果が出力されます。

     Exam Subject Exam Time
Mon    Chemistry      2 PM
Tue      Physics     10 AM
Wed        Maths     11 AM
Thu      English      1 PM
Fri      Biology      3 PM

デフォルトでは0から始まる連番がインデックスに割り当てられますが、index引数を使うことで、曜日や日付など、意味のあるラベルを行インデックスとして設定できます。これにより、データの可読性が向上し、locを使ったラベルベースのデータ抽出も容易になります。

まとめ

キーにリストを持つ辞書からは、pd.DataFrame()を呼び出すだけで簡単にデータフレームを作成できます。さらにindex引数を活用すれば、行ラベルを柔軟にカスタマイズすることも可能です。CSVファイルやデータベースから取得したデータを整形する前処理など、実際のデータ分析の場面でも頻繁に使われるテクニックなので、ぜひマスターしておきましょう。

  1. Python Pandas:read_csvのskipinitialspaceでCSV読み込み時の先頭スペースをスキップする方法

    PandasでCSVの先頭スペースをスキップするには?PandasでDataFrameを読み込む際、データの先頭にある余分な空白(初期スペース)を取り除きたい場合は、read_csv()メソッドのskipinitialspaceパラメータを使用します。このパラメータをTrueに設定すると、区切り文字(カンマなど)の直後にある空白が自動的にスキップされます。CSVファイルの中には、カンマの後に不要なスペースが混ざっているケースが少なくありません。そのまま読み込むと、列名や値の先頭に空白が残り、条件検索やグループ化の際にデータが正しく一致しない原因となります。skipinitialspace=Tr

  2. Python tkinterでボタンを作成する方法|標準tkinterとttkの違いも解説

    PythonのGUIライブラリ「Tkinter」には、ウィンドウ上にボタンを作成するためのさまざまな方法が用意されています。この記事では、標準のtkinterモジュールを使ったボタンの作成方法と、テーマ機能を持つtkinter.ttkモジュールを使ったボタンの作成方法の2通りを、サンプルコードとともにわかりやすく解説します。 tkinterモジュールでボタンを作成する 以下のプログラムでは、まずウィンドウを作成し、続いてButtonクラスを使ってボタンを生成しています。tkinterモジュール全体をインポートしているため、作成されたボタンには従来型のスタイル(テーマ)が適用されます。 主なパラ