スポンサーリンク

【Python】PandasのDataFrameとSeriesの違い

記事内に広告が含まれています。

PandasはPythonのデータ分析ライブラリで、データ操作における基本的なデータ構造としてDataFrameSeriesの2つがあります。

これらの違いを理解することは、Pandasを使いこなすための重要なステップです。

この記事では、DataFrameSeriesの違い、使用例、およびそれぞれがどのように役立つかを詳しく解説します。

スポンサーリンク

定義

Series

Seriesは、一方向(1次元)の配列データを表現するためのデータ構造です。インデックス(行ラベル)を持ち、リストやNumPy配列のようなシンプルなデータの列を表すことができます。各要素にはインデックスが対応しており、このインデックスを使って個々のデータにアクセスできます。

DataFrame

DataFrameは、2次元のデータ構造であり、行と列の両方を持ちます。Excelのスプレッドシートやデータベースのテーブルのように、行と列の組み合わせでデータを管理します。複数のSeriesをまとめた構造で、各列が個別のSeriesオブジェクトになります。

スポンサーリンク

構造の違い

特徴SeriesDataFrame
次元数1次元2次元
データの形1つの列(ラベル付きの配列)行と列を持つ表形式データ
インデックス行ラベル(単一のインデックス)行ラベルと列ラベル(インデックスとカラム名)
データの型単一のデータ型(各要素が同じ型)各列ごとに異なるデータ型が許可される
使用例時系列データ、単一の特徴量データ分析、機械学習のデータセット管理

作成方法の違い

Seriesの作成
import pandas as pd # リストからSeriesを作成
series_example = pd.Series([10, 20, 30, 40]) 
rint(series_example) 

出力は以下のようになります。

0 10
1 20
2 30
3 40
dtype: int64
DataFrameの作成
import pandas as pd # 辞書からDataFrameを作成

dataframe_example = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [24, 30, 18], 'City': ['New York', 'San Francisco', 'Los Angeles'] })

print(dataframe_example) 

出力は以下のようになります。

  Name Age City
0 Alice 24 New York
1 Bob 30 San Francisco
2 Charlie 18 Los Angeles

SeriesとDataFrameの相互変換

SeriesからDataFrameに変換
# SeriesをDataFrameに変換
series = pd.Series([100, 200, 300], index=['a', 'b', 'c'])
df_from_series = series.to_frame(name='Values') print(df_from_series)
  Values
a 100
b 200
c 300
DataFrameからSeriesに変換
# DataFrameの特定の列をSeriesとして取得
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
series_from_df = df['A'] print(series_from_df)
0 1
1 2
2 3
Name: A, dtype: int64

利用シーンの違い

Seriesを使用する場面
  • 単一の時系列データの処理
  • 機械学習モデルの単一特徴量として利用
  • ラベル付きデータの集計やフィルタリング
DataFrameを使用する場面
  • 複数の列を持つデータセットの操作(データクリーニングや分析)
  • 機械学習モデルのトレーニングデータ
  • データ可視化の準備

メソッドの違い

Series固有のメソッド

Series.value_counts(): ユニークな値の出現頻度をカウント

Series.mean(): 平均値を計算

Series.plot(): 単純なプロットの作成

DataFrame固有のメソッド

DataFrame.describe(): 統計情報を提供

DataFrame.drop(): 行や列を削除

DataFrame.groupby(): グループ化による集計

まとめ

Seriesは1次元のデータ構造で、単一のデータの列に対して操作を行うのに適しています。一方、DataFrameは2次元のデータ構造で、複数のデータ列を含むデータセット全体を管理し、分析するのに適しています。

スポンサーリンク
Python
著者SNS
タイトルとURLをコピーしました