Pythonのdf(DataFrame)とは
Pythonのdf(DataFrame)はpandasライブラリが提供する2次元のデータ構造で、行と列を持つテーブル形式でデータを管理するためのオブジェクトです。DataFrameは表計算ソフトのExcelやデータベースのテーブルと同様の構造を持ち、異なるデータ型(整数、浮動小数点数、文字列など)を同一のデータ構造内で混在して扱うことができます。
【サンプルコード】import pandas as pd
# DataFrameの作成
data = {
'name': ['田中', '佐藤', '鈴木'],
'age': [25, 30, 35],
'city': ['東京', '大阪', '名古屋']
}
df = pd.DataFrame(data)
print(df)
【実行結果】
name age city
0 田中 25 東京
1 佐藤 30 大阪
2 鈴木 35 名古屋
DataFrameの各列は異なるデータ型を持つことが可能で、数値データと文字列データを同時に格納できる柔軟性があります。各行にはインデックス(デフォルトでは0から始まる連番)が自動的に割り当てられ、データの特定や操作時の参照に使用されます。
データ分析や機械学習の分野においてDataFrameは中心的な役割を果たし、CSVファイルやExcelファイルからの読み込み、データの前処理、統計分析などの作業を効率的に実行できます。pandas.DataFrameクラスは豊富なメソッドを提供しており、データの並び替え、フィルタリング、集計、結合などの操作を直感的なコードで記述できます。
Pythonのdf(DataFrame)を使用する方法
DataFrameを使用するためには、まずpandasライブラリをインポートし、辞書やリスト、外部ファイルなどからDataFrameオブジェクトを作成する必要があります。最も基本的な作成方法は辞書形式のデータをpd.DataFrame()コンストラクタに渡すことで、キーが列名、値がデータのリストとなります。
import pandas as pd
# 辞書からDataFrameを作成
student_data = {
'student_id': [1, 2, 3, 4],
'score': [85, 92, 78, 88],
'subject': ['数学', '英語', '国語', '理科']
}
df = pd.DataFrame(student_data)
print("DataFrameの内容:")
print(df)
print("\nDataFrameの基本情報:")
print(df.info())
【実行結果】
DataFrameの内容:
student_id score subject
0 1 85 数学
1 2 92 英語
2 3 78 国語
3 4 88 理科
DataFrameの基本情報:
RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 student_id 4 non-null int64
1 score 4 non-null int64
2 subject 4 non-null object
dtypes: int64(2), object(1)
memory usage: 224.0+ bytes
DataFrameの作成後はdf.head()メソッドで先頭数行を表示したり、df.shape属性で行数と列数を確認したりすることが可能です。これらのメソッドと属性を使用することによって、データの概要を素早く把握し、後続の分析作業の方針を決定できます。
外部ファイルからDataFrameを作成する場合は、pd.read_csv()やpd.read_excel()などの読み込み専用メソッドを使用します。これらのメソッドは多様なオプションパラメータを持ち、文字エンコーディングの指定、欠損値の処理方法、データ型の指定などを細かく制御できます。
Pythonでdfを活用したデータフレーム作成
DataFrameの作成には複数のアプローチがあり、データの形式や取得元に応じて適切な方法を選択する必要があります。リストのリストから作成する場合は各内側のリストが一行のデータを表し、列名はcolumnsパラメータで明示的に指定できます。
import pandas as pd
# リストのリストからDataFrame作成
data_list = [
['商品A', 1500, 10],
['商品B', 2000, 15],
['商品C', 800, 25]
]
columns = ['product_name', 'price', 'stock']
df = pd.DataFrame(data_list, columns=columns)
print("リストから作成したDataFrame:")
print(df)
【実行結果】
リストから作成したDataFrame:
product_name price stock
0 商品A 1500 10
1 商品B 2000 15
2 商品C 800 25
NumPy配列からDataFrameを作成することも可能で、数値計算ライブラリで生成した配列データを直接DataFrameに変換できます。この方法は科学計算や機械学習のワークフローにおいて頻繁に使用され、計算結果をすぐにデータ分析用の形式に変換できる利便性があります。
空のDataFrameを作成してから行や列を動的に追加する方法もあり、データが段階的に得られる場合や条件に応じてDataFrameを構築する場合に有用です。pd.DataFrame()を引数なしで呼び出すことで空のDataFrameが作成され、後からdf.loc[]やdf.append()メソッドを使用してデータを追加できます。
Pythonでdfを使用したデータ操作の方法
DataFrameのデータ操作には多様なメソッドが提供されており、行や列の選択、フィルタリング、並び替え、集計などの処理を効率的に実行できます。列の選択はdf['列名']またはdf.列名の記法で行い、複数列を同時に選択する場合はリスト形式で列名を指定します。
import pandas as pd
# サンプルデータの作成
sales_data = {
'date': ['2024-01-01', '2024-01-02', '2024-01-03'],
'product': ['A', 'B', 'A'],
'sales': [100, 150, 80],
'profit': [20, 45, 16]
}
df = pd.DataFrame(sales_data)
# データの選択と操作
print("売上が100以上の行:")
filtered_df = df[df['sales'] >= 100]
print(filtered_df)
print("\n売上順での並び替え:")
sorted_df = df.sort_values('sales', ascending=False)
print(sorted_df)
【実行結果】
売上が100以上の行:
date product sales profit
0 2024-01-01 A 100 20
1 2024-01-02 B 150 45
売上順での並び替え:
date product sales profit
1 2024-01-02 B 150 45
0 2024-01-01 A 100 20
2 2024-01-03 A 80 16
条件に基づく行のフィルタリングはdf[条件式]の形式で記述し、複数の条件を組み合わせる場合は論理演算子(&、|、~)を使用します。フィルタリング結果は新しいDataFrameオブジェクトとして返されるため、元のデータを変更することなく分析を進められます。
データの集計処理ではgroupby()メソッドが中心的な役割を果たし、指定した列の値でグループ化してから各グループに対して統計関数を適用します。集計関数にはsum()、mean()、count()、max()、min()などがあり、ビジネスデータの分析や報告書作成において必要な統計情報を簡潔に算出できます。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
Gitでブランチ(branch)を作成する方法
crontabの書き方
PDFをExcelに変換する方法
Excelでプルダウンを設定する方法
エクセルでページ区切りを設定する方法
Markdownの取り消し線の書き方
ラズベリーパイでできること9選
Gitでbranch(ブランチ)を削除する方法をローカル・リモート別に解説
git addの取り消し方法を状況別に解説
CSSのstickyプロパティでWebサイトに固定要素を実装する方法
ITやプログラミングに関するニュース
アイアール技術者教育研究所がエクセルギー解析計算ウェビナーを開催、省エネと環境負荷低減に貢献
フラー株式会社がアプリ市場トレンド解説ウェビナーを3月25日に開催、成長アプリの共通項とデータ活用を解説
株式会社BOTANICOが2026年版X運用最新戦略ウェビナーを開催、成果につなげる資産型運用を解説
AIストーム株式会社がOpenClaw活用セミナーを開催、AIエージェントがビジネス現場を変革
株式会社オロが建設コンサルティング業向けウェビナーを開催、技術部門の損益可視化を支援
アルティウスリンク株式会社が経理向けBPO活用ウェビナーを開催、課題解決と業務効率化を支援
株式会社日本計画研究所がAI時代のインフラセミナー開催、GPUとデータセンターの課題を解説
株式会社カウンターワークスがリーシング業務AI活用ウェビナー開催、既存ツールでAIエージェント実践
株式会社セキドがDJI産業機セミナーを福井で開催、3Dデータ活用と機材選定を無料解説
株式会社ナビットが補助金活用ウェビナーを開催、販促費削減と集客力向上を解説
