
【Python】df(DataFrame)とは?基本的な使い方やデータ操作について解説
公開: 更新:Pythonのdfとは
Pythonのdf(DataFrame)はpandasライブラリが提供する2次元のデータ構造で、行と列を持つテーブル形式でデータを管理するオブジェクトです。データフレームは表計算ソフトのExcelやデータベースのテーブルと同様の構造を持ち、異なるデータ型(整数、浮動小数点数、文字列など)を同一のデータ構造内で混在して扱うことができます。
【dfの例】
import pandas as pd
data = {
'name': ['田中', '佐藤', '鈴木'],
'age': [25, 30, 35],
'city': ['東京', '大阪', '名古屋']
}
df = pd.DataFrame(data)
print(df)
行番号 | 詳細説明 |
---|---|
1行目 | pandasライブラリをpdという名前でインポート |
3行目 | 辞書形式でサンプルデータを定義開始 |
4行目 | name列に文字列のリストを設定 |
5行目 | age列に数値のリストを設定 |
6行目 | city列に文字列のリストを設定 |
7行目 | 辞書の定義終了 |
8行目 | 辞書データからDataFrameオブジェクトを作成しdfに代入 |
9行目 | 作成したDataFrameの内容をコンソールに出力 |
name age city
0 田中 25 東京
1 佐藤 30 大阪
2 鈴木 35 名古屋
データフレームの各列は異なるデータ型を持つことが可能で、数値データと文字列データを同時に格納できる柔軟性があります。各行にはインデックス(デフォルトでは0から始まる連番)が自動的に割り当てられ、データの特定や操作時の参照に使用されます。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
Pythonでデータフレームを作成する方法
データフレームを使用するためには、まずpandasライブラリをインポートして、辞書やリスト、外部ファイルなどからDataFrameオブジェクトを作成する必要があります。基本的な作成方法は辞書形式のデータをpd.DataFrame()
コンストラクタに渡すことで、キーが列名、値がデータのリストとなります。
import pandas as pd
student_data = {
'student_id': [1, 2, 3, 4],
'score': [85, 92, 78, 88],
'subject': ['数学', '英語', '国語', '理科']
}
df = pd.DataFrame(student_data)
print(df)
行番号 | 詳細説明 |
---|---|
1行目 | pandasライブラリをpdという名前でインポート |
3行目 | 学生データの辞書を定義開始 |
4行目 | student_id列に学生IDのリストを設定 |
5行目 | score列に点数のリストを設定 |
6行目 | subject列に科目名のリストを設定 |
7行目 | 辞書の定義終了 |
8行目 | 辞書からDataFrameを作成しdfに代入 |
9行目 | 作成したDataFrameをコンソールに出力 |
student_id score subject
0 1 85 数学
1 2 92 英語
2 3 78 国語
3 4 88 理科
リストのリストからデータフレームを作成する場合は各内側のリストが一行のデータを表し、列名はcolumns
パラメータで明示的に指定できます。外部ファイルからDataFrameを作成する場合は、pd.read_csv()
やpd.read_excel()
などの読み込み専用メソッドを使用します。
Pythonでdfを使用したデータ操作の方法
データフレームのデータ操作には多様なメソッドが提供されており、行や列の選択、フィルタリング、並び替え、集計などの処理を実行できます。列の選択はdf['列名']
またはdf.列名
の記法で行い、複数列を同時に選択する場合はリスト形式で列名を指定します。
import pandas as pd
sales_data = {
'product': ['A', 'B', 'A'],
'sales': [100, 150, 80],
'profit': [20, 45, 16]
}
df = pd.DataFrame(sales_data)
filtered_df = df[df['sales'] >= 100]
print(filtered_df)
行番号 | 詳細説明 |
---|---|
1行目 | pandasライブラリをpdという名前でインポート |
3行目 | 売上データの辞書を定義開始 |
4行目 | product列に商品名のリストを設定 |
5行目 | sales列に売上数値のリストを設定 |
6行目 | profit列に利益数値のリストを設定 |
7行目 | 辞書の定義終了 |
8行目 | 辞書からDataFrameを作成しdfに代入 |
9行目 | 売上が100以上の行を抽出してfiltered_dfに代入 |
10行目 | フィルタリング結果をコンソールに出力 |
product sales profit
0 A 100 20
1 B 150 45
条件に基づく行のフィルタリングはdf[条件式]
の形式で記述し、複数の条件を組み合わせる場合は論理演算子(&
、|
、~
)を使用します。データの集計処理ではgroupby()
メソッドが中心的な役割を果たし、指定した列の値でグループ化してから各グループに対して統計関数を適用します。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
ITやプログラミングに関するニュース
- Azure SQL Managed InstanceがVector型Public Preview対応開始、AI駆動アプリケーション開発の効率化を実現
- GoogleがGmailアプリにGeminiサマリーカードを導入、メール要約の自動表示機能が利用可能に
- ZenchordとNottaが共同開発したAIイヤホンZenchord 1をMakuakeで先行公開、音声認識から議事録作成まで自動化
- Ideinが音声解析AIサービス「Phonoscape」の提供を開始、対面接客現場での会話データ活用が可能に
- Microsoftが.NET 10 Preview 4でdotnet run app.cs機能をリリース、プロジェクトファイル不要でC#実行が可能に