【Python】df(DataFrame)とは?基本的な使い方やデータ操作について解説

【Python】df(DataFrame)とは?基本的な使い方やデータ操作について解説

公開: 更新:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座



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研修一覧はこちら

目的に合うPython研修を一覧形式から探したい方は、ぜひご利用ください。

Python研修を比較する

Java研修一覧はこちら

目的に合うJava研修を一覧形式から探したい方は、ぜひご利用ください。

Java研修を比較する

PHP研修一覧はこちら

目的に合うPHP研修を一覧形式から探したい方は、ぜひご利用ください。

PHP研修を比較する

新入社員研修

目的に合う新入社員研修を一覧形式から探したい方は、ぜひご利用ください。

新入社員研修を比較する

全ての研修からも探したい方はこちら

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基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

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やプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

企業・法人向けのIT・プログラミング・生成AI研修を探す、比較する - IT・プログラミングを知って学べるコネクトメディア CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する