用語比較
SeriesとDataFrameの違い
1次元のラベル付き配列か、行と列の表か(Python3データ分析)
pandasのSeriesとDataFrameの違いは次元で、Seriesは任意の型のデータを保持できる1次元のラベル付き配列、DataFrameは行と列を持つ表のような2次元のデータ構造です。
DataFrameに単一のラベルを渡すdf["A"]は列を選んでSeriesを返すので、表から1列を取り出すと1次元に変わります。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
SeriesとDataFrameの要点
Series
任意の型のデータを保持できる1次元のラベル付き配列。公式の例では、リストから作ると既定のRangeIndexが付く。
DataFrame
行と列を持つ、表のような2次元のデータ構造。df["A"]のように単一のラベルで列を選ぶと、Seriesが返る。
違いを表で確認
| 比較軸 | Series | DataFrame |
|---|---|---|
| 次元 | 1次元のラベル付き配列 | 行と列を持つ2次元のデータ構造 |
| 作り方(公式の例) | pd.Series([1, 3, 5, np.nan, 6, 8]) のように、値のリストを渡す | 日付の索引(date_range)とラベル付きの列を指定して、NumPyの配列から作る |
| 索引の付き方(公式の例) | リストから作ると、既定のRangeIndex(0から5)が付く | 公式の例では、日付の索引(2013-01-01から6日分)を指定している |
| 型(dtype)の持ち方 | 1つのSeriesが1つのdtypeを持つ(公式の例ではNaNを含むのでfloat64) | 列ごとに1つのdtypeを持つ。NumPyの配列は全体で1つのdtype |
Python3エンジニア認定データ分析試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
値の並びを、ラベルつきで1本だけ持ちたい人
1列ぶんの値の並びを扱う場面です。公式の例のように、値のリストをSeriesに渡すと、既定のRangeIndexが付きます。
行と列のある表を扱いたい人
複数の列を持つ表を扱う場面です。DataFrameを使い、列ごとに別のdtype(数値、日時、文字列など)を持たせられます。
df["A"] の戻り値の型を問われて迷う人
公式は、単一のラベルを渡すと列が選ばれてSeriesが返ると説明しています。表からの取り出しなので、結果は1次元のSeriesです。
具体例で使い分ける
例 1
リストから Series を作る
公式の例です。pd.Series([1, 3, 5, np.nan, 6, 8]) で、6つの値からSeriesを作ります。
- 索引は指定していないので、pandasが既定のRangeIndexを付けます。ラベルは0から5です。
- 4番目の値(ラベル3)は
NaNです。NaNを含むため、dtypeはfloat64になります。 - 値は1次元に並んでおり、列の数や列名を持つ構造はありません。
結論: Seriesは、1次元のラベル付き配列です。リストから作ると、既定のRangeIndexが付きます。
例 2
DataFrame から df["A"] で列を選ぶ
公式の例です。日付を索引に持つ6行のDataFrame df から、df["A"] で A 列を選びます。
- DataFrameに単一のラベルを渡すと、その列が選ばれます。
- 戻り値は、2013-01-01から2013-01-06の6つの値を持つ1次元のSeriesです。名前(Name)はAです。
- 元のDataFrameの索引(日付)が、そのままSeriesの索引になっています。
結論: df["A"]の戻り値はSeriesです。2次元の表から1列を取り出すと、1次元になります。
問題文から答えを選ぶ手順
- 1
扱うデータが1列か、複数の列を持つ表かを見る
1列ぶんならSeries、列の並んだ表ならDataFrameです。
- 2
作り方を見る
値のリストを渡すならSeries、ラベル付きの列を持つデータを渡すならDataFrameです。
- 3
列の選択の戻り値を確かめる
単一のラベルで列を選ぶとSeriesが返ります。
試験での見分け方
- 1Series は、任意の型のデータを保持できる1次元のラベル付き配列である。
- 2DataFrame は、行と列を持つ表のような2次元のデータ構造である。
- 3DataFrame に単一のラベルを渡す df["A"] は、列を選んで Series を返す。
誤答しやすい選択肢
df["A"] の戻り値を、DataFrameと考える
修正: 公式は、単一のラベルを渡すと列が選ばれて Series が返ると説明しています。
DataFrame全体が、1つのdtypeを持つと考える
修正: NumPyの配列は全体で1つのdtypeですが、DataFrameは列ごとに1つのdtypeを持ちます。
リストから作ったSeriesに、索引がないと考える
修正: 索引を指定しなければ、pandasが既定のRangeIndexを付けます。公式の例では0から5です。
確認問題
Q1任意の型のデータを保持できる、1次元のラベル付き配列はどれか?
答え: Series
Seriesは1次元のラベル付き配列です。行と列を持つ2次元の構造はDataFrameです。
Q2DataFrame df に対して df["A"] を使うと、戻り値は何になるか?
答え: Series(A列の値を持つ1次元)
単一のラベルを渡すと、列が選ばれてSeriesが返ります。
Q3リストから索引を指定せずにSeriesを作ったとき、付く索引は?
答え: 既定のRangeIndex
pandasが、0から始まる既定のRangeIndexを付けます。
到達チェック
- SeriesとDataFrameの、次元の違いを言い分けられる
- df["A"] の戻り値がSeriesであることを説明できる
- DataFrameがdtypeを列ごとに持つことを説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- AxesとAxisの違い|描画領域のAxesと、目盛りを担うAxis(Python3データ分析のMatplotlib)
Matplotlibの Axes と Axis の違いを、役割・個数・ラベルや目盛りの設定先で整理します。公式のQuick start guideで照合した、plt.subplots(2, 2) のとき何個になるかを数える例と確認問題つき。
- mergeとconcatの違い|キーで結合するか、そのまま連結するか(Python3データ分析)
pandasのmerge()とconcat()の違いを、結合の基準(キー列か、並べて連結か)で整理します。pandas公式「10 minutes to pandas」の例、キーが重複したときの行数、確認問題つき。
- OOスタイルとpyplotスタイルの違い|Axesを明示するか任せるか(Python3データ分析)
Matplotlibのオブジェクト指向(OO)スタイルとpyplotスタイルの違いを、Figure・Axesの作り方、ラベル設定の書き方、公式の推奨で整理します。公式のQuick start guideで照合した、同じ図を2通りで書く例と確認問題つき。
よくある質問
QSeriesとは?
pandasで、任意の型のデータを保持できる1次元のラベル付き配列です。リストから作ると、既定のRangeIndexが付きます。
QDataFrameとは?
pandasで、行と列を持つ表のような2次元のデータ構造です。列ごとに1つのdtypeを持ちます。
QSeriesとDataFrameの違いは?
次元です。Seriesは1次元、DataFrameは行と列を持つ2次元です。
Qdf["A"] の戻り値は?
Seriesです。DataFrameに単一のラベルを渡すと、列が選ばれてSeriesが返ります。
Qデータ分析試験の範囲?
本サイトの第4章pandasの「SeriesとDataFrameの基本」で扱います。出題の形式や範囲は、受験前に公式の案内で確認してください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
