【Pandas】Seriesの基本構造

Pandas
この記事は約6分で読めます。

こんにちは、JS2IIUです。

Pandasを使いこなす最初の入り口がこのSeriesです。Seriesをよく理解しておくと、この先パワフルなPandasの機能を使いこなしていくことが容易になります。この記事では、図を使って説明しますので、どんな構造なのかをしっかり把握して、活用していきましょう!今回もよろしくお願いします。

はじめに

PandasのSeriesは、Pythonでデータを扱う際に基盤となる非常に重要なデータ構造です。この記事では、Seriesの基本構造や要素について初心者向けに解説します。また、Seriesを作成する方法や、その要素にアクセスする方法についてのサンプルコードも紹介します。最後に、Seriesの柔軟な活用法についても触れていきます。

Seriesの基本構造と要素

Seriesは、1次元のデータを格納するための構造で、NumPyの配列に似ていますが、以下の点で拡張されています。

  • index: 各データに関連付けられるラベル。NumPyの配列ではインデックスが整数のみですが、PandasのSeriesでは任意のラベルを設定可能です。
  • values: 実際のデータを保持する部分で、NumPyのndarray形式で格納されています。

サンプルコード:Seriesを作成して構造を確認する

以下のコードは、Seriesを作成し、その構造を確認する例です。

import pandas as pd

# Seriesを作成
data = [10, 20, 30, 40]
series = pd.Series(data, index=['A', 'B', 'C', 'D'])

# Seriesの構造を表示
print("Seriesの構造を確認")
print("Index:", series.index)
print("Values:", series.values)
print("Series本体:")
print(series)

実行結果

Seriesの構造を確認
Index: Index(['A', 'B', 'C', 'D'], dtype='object')
Values: [10 20 30 40]
Series本体:
A    10
B    20
C    30
D    40
dtype: int64
  • indexにはA, B, C, Dというラベルが設定されています。
  • valuesには数値のデータ10, 20, 30, 40が格納されています。
  • Series本体は、ラベルとデータが対応付けられた形で表示されます。

indexとvaluesのデータ型

Seriesのindexvaluesについて、データ型を確認してみましょう。

print("Indexのデータ型:", type(series.index))
print("Valuesのデータ型:", type(series.values))

実行結果

Indexのデータ型: <class 'pandas.core.indexes.base.Index'>
Valuesのデータ型: <class 'numpy.ndarray'>
  • indexは、PandasのIndexオブジェクトとして格納され、柔軟に操作可能です。
  • valuesは、NumPyの配列形式で格納されており、高速な計算が可能です。

Seriesの要素へのアクセス方法

Seriesのデータは、NumPy配列のようにインデックスを使用してアクセスできます。また、ラベルを使用して要素にアクセスすることも可能です。

サンプルコード:要素へのアクセス

# 要素にアクセス
print("ラベルを指定してアクセス:", series['B'])
print("整数インデックスでアクセス:", series[1])

# スライスでアクセス
print("スライスでアクセス:")
print(series['B':'D'])  # ラベルでスライス
print(series[1:3])      # 整数インデックスでスライス

実行結果

ラベルを指定してアクセス: 20
整数インデックスでアクセス: 20
スライスでアクセス:
B    20
C    30
D    40
dtype: int64
B    20
C    30
dtype: int64

ラベルや整数インデックスを使用することで、柔軟にデータを取り出すことができます。

まとめ

PandasのSeriesは、1次元のデータを扱う際に非常に便利なデータ構造です。

  • index: 任意のラベルを指定でき、柔軟なデータ管理が可能です。
  • values: NumPyの配列として格納されており、高速な計算が可能です。
  • indexを指定しない場合: デフォルトで0から始まる整数がインデックスとして割り当てられます。

要素へのアクセス方法もNumPy配列と似ており、ラベルや整数インデックスで簡単に操作できます。これらの特徴を理解しておくと、Seriesを活用したデータ分析がスムーズになります。

参考

少しだけPRです。

Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。

最後まで読んでいただきありがとうございます。73

コメント

タイトルとURLをコピーしました