【Series入門】Pandasシリーズの作成・アクセス・基本操作を徹底解説
SeriesはPandasの中で最も基本的なデータ構造です。「ラベル付き一次元配列」とイメージしてください。Seriesはデータ(NumPyのndarray)とラベル(Index)の2つの部分で構成されています。このIndexがあるおかげで、Seriesはただの配列を超えて、各値に「名前」が付けられるのです。このセクションでは、Seriesの正体から始めて、作成方法、演算、よく使うメソッドまでを順に学んでいきましょう。
⚠️ 注意: 以下のコードはローカルのPython環境で実行してください。
1. このセクションで学ぶこと
- ❶ Seriesの正体(ndarray+Index)
- ❷ Indexラベルシステムと値の取り出し方
- ❸ Seriesのさまざまな作成方法
- ❹ Seriesに対するベクトル化演算
- ❺ よく使うメソッド(head / tail / describe / value_counts)
2. アリスのコーヒーショップ売上日記
(1) 悩み:名前がない数字
アリスはコーヒーショップを経営しています。1週間の売上をNumPyで記録していました:
PYTHON
import numpy as np
sales = np.array([320, 280, 350, 410, 390, 520, 480])
# 520は何曜日?位置5だけど…何曜日だっけ?
print(sales[5]) # 520 — でもこの数字は何を意味するの?
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
520は金曜日でしょうか、それとも土曜日でしょうか?sales[5]だけでは分かりません。「位置→曜日」の対応表を別途管理する必要がありますね。
(2) 解決策:Seriesでデータが自己記述的になる
▶ サンプル:Seriesでラベル付き売上データを作る(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
sales = pd.Series(
[320, 280, 350, 410, 390, 520, 480],
index=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
name='daily_sales'
)
print(sales)
# Mon 320
# Tue 280
# Wed 350
# Thu 410
# Fri 390
# Sat 520
# Sun 480
# Name: daily_sales, dtype: int64
print(sales['Sat']) # 520 — ラベルによるアクセス
print(sales.iloc[5]) # 520 — 位置によるアクセス
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
Seriesはデータとラベルを結びつけてくれます。sales['Sat']はsales[5]よりもずっと意味が分かりやすいですね。
(3) メリット:Indexはデータの名札
Indexラベルがあると、データは自己記述的になります:
- ラベルによるアクセス:
s['Mon']はs[0]よりも明確です - 整列演算:2つのSeriesを組み合わせると、ラベルで自動的に整列されます
- 豊かな意味:Indexには日付、文字列、さらには多段階ラベルも使えます
3. Seriesの内部構造
(1) 2つの構成要素:values+index
graph LR
A[Series] --> B[values: NumPy ndarray]
A --> C[index: Indexオブジェクト]
B --> D[320, 280, 350, ...]
C --> E["Mon, Tue, Wed, ..."]
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
| プロパティ | 型 | 説明 |
|---|---|---|
s.values |
np.ndarray | 内部のデータ配列 |
s.index |
pd.Index | 行ラベル |
s.name |
str | Seriesの名前 |
s.dtype |
np.dtype | 要素のデータ型 |
s.shape |
tuple | 形状(一次元、例:(7,)) |
s.size |
int | 要素数 |
▶ サンプル:Seriesのプロパティを確認する(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
import numpy as np
s = pd.Series([320, 280, 350], index=['Mon', 'Tue', 'Wed'])
print(f"valuesの型: {type(s.values)}") # <class 'numpy.ndarray'>
print(f"indexの型: {type(s.index)}") # <class 'pandas.core.indexes.base.Index'>
print(f"dtype: {s.dtype}") # int64
print(f"shape: {s.shape}") # (3,)
print(f"size: {s.size}") # 3
print(f"name: {s.name}") # None
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(2) Seriesとndarrayの比較
| 特徴 | NumPy ndarray | Pandas Series |
|---|---|---|
| ラベル | なし(位置のみ) | あり(Index) |
| 混合型 | 非対応 | 非推奨だが可能(object) |
| 欠損値 | np.nan(floatのみ) | NaN / pd.NA(全型対応) |
| 演算の整列 | 位置基準 | ラベル基準 |
| 名前 | なし | nameプロパティ |
| よく使う統計 | np.meanなど | .mean()のようなメソッドチェーン |
| 内部実装 | ndarray | ndarray+Index |
📌 ポイント: Seriesの本質は「ndarray+Index+name」です。
.valuesだけを使う場合、ただのndarrayに退化してしまいます。
4. Seriesのさまざまな作成方法
(1) リストから作成する
▶ サンプル:リストからSeriesを作成する(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
# デフォルトのインデックス:0, 1, 2, ...
s1 = pd.Series([10, 20, 30, 40])
print(s1)
# 0 10
# 1 20
# 2 30
# 3 40
# カスタムインデックス
s2 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s2['b']) # 20
# 名前付き
s3 = pd.Series([10, 20, 30], name='scores')
print(s3.name) # scores
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(2) 辞書から作成する
▶ サンプル:辞書からSeriesを作成する(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
# キーがインデックスに、値がデータになる
population = pd.Series({
'Tokyo': 13960000,
'New York': 8336000,
'London': 8982000,
'Paris': 2161000
})
print(population)
# Tokyo 13960000
# New York 8336000
# London 8982000
# Paris 2161000
print(population['London']) # 8982000
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
辞書から作成するメリットは、キーが自動的にIndexになることです。手動で指定する必要がありません。
(3) NumPyのndarrayから作成する
▶ サンプル:ndarrayからSeriesを作成する(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import numpy as np
import pandas as pd
arr = np.array([3.14, 2.72, 1.41, 1.73])
s = pd.Series(arr, index=['pi', 'e', 'sqrt2', 'sqrt3'])
print(s)
# pi 3.14
# e 2.72
# sqrt2 1.41
# sqrt3 1.73
print(f"内部の型: {type(s.values)}") # numpy.ndarray
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(4) スカラーから作成する(ブロードキャスト)
▶ サンプル:スカラーのブロードキャストでSeriesを作成する(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
# スカラーをブロードキャストして全インデックスを埋める
s = pd.Series(0, index=['A', 'B', 'C', 'D'])
print(s)
# A 0
# B 0
# C 0
# D 0
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(5) 作成方法の比較
| 方法 | 構文 | インデックスの来源 | ユースケース |
|---|---|---|---|
| リスト | pd.Series([1,2,3]) |
デフォルトのRangeIndex | 簡単なテスト |
| リスト+index | pd.Series([1,2,3], index=...) |
手動で指定 | カスタムラベルが必要なとき |
| 辞書 | pd.Series({'a':1, 'b':2}) |
辞書のキー | ラベルと値のペア |
| ndarray | pd.Series(np.array(...)) |
デフォルトまたは指定 | NumPyデータの変換 |
| スカラー | pd.Series(0, index=...) |
手動で指定 | 初期化・埋め込み |
5. Seriesへのアクセス
(1) ラベルアクセスと位置アクセス
▶ サンプル:2つのアクセス方法(難易度 ⭐⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
s = pd.Series([320, 280, 350, 410],
index=['Mon', 'Tue', 'Wed', 'Thu'])
# ラベルによるアクセス(推奨)
print(s['Tue']) # 280
print(s.loc['Tue']) # 280 — 明示的なラベルアクセス
# 位置によるアクセス
print(s.iloc[1]) # 280 — 明示的な位置アクセス
# ラベルによるスライス(終点を含む)
print(s['Mon':'Wed'])
# Mon 320
# Tue 280
# Wed 350
# 位置によるスライス(終点を含まない、Pythonと同じ)
print(s.iloc[0:3])
# Mon 320
# Tue 280
# Wed 350
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
🔥 よくある落とし穴: ラベルスライスは終点を含みます(
'Mon':'Wed'はWedを含む)。一方、位置スライスは終点を含みません(iloc[0:3]は位置3を含まない)。これはPandas初心者が最も混乱しやすいポイントです。
(2) アクセス方法の比較
| 方法 | 構文 | 終点 | 推奨用途 |
|---|---|---|---|
s[label] |
省略形 | — | 単一のラベル |
s.loc[label] |
明示的なラベル | 終点を含む | 意図を明確にしたいとき |
s.iloc[pos] |
明示的な位置 | 終点を含まない | 位置で指定したいとき |
s[[l1,l2]] |
リスト選択 | — | 複数のラベル |
6. Seriesの演算
(1) ベクトル化演算
▶ サンプル:Seriesのベクトル化演算(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
sales = pd.Series([320, 280, 350, 410],
index=['Mon', 'Tue', 'Wed', 'Thu'])
# 算術演算
print(sales * 1.1) # 10%値上げ
# Mon 352.0
# Tue 308.0
# Wed 385.0
# Thu 451.0
# 比較演算
print(sales > 300)
# Mon True
# Tue False
# Wed True
# Thu True
# ブール値でフィルタリング
print(sales[sales > 300])
# Mon 320
# Wed 350
# Thu 410
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(2) インデックス整列演算
これはSeriesの最も重要な特徴の1つです:演算は位置ではなくIndexで整列されます。
▶ サンプル:インデックス整列演算(難易度 ⭐⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
week1 = pd.Series({'Mon': 320, 'Tue': 280, 'Wed': 350})
week2 = pd.Series({'Tue': 310, 'Wed': 370, 'Thu': 400})
# インデックスで自動整列、一致しないもの→NaN
total = week1 + week2
print(total)
# Mon NaN # week1にのみ存在
# Tue 590.0 # 280 + 310
# Wed 720.0 # 350 + 370
# Thu NaN # week2にのみ存在
# NaNの代わりに0で埋める
total_filled = week1.add(week2, fill_value=0)
print(total_filled)
# Mon 320.0
# Tue 590.0
# Wed 720.0
# Thu 400.0
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
💡 ヒント: 2つのSeriesのIndexが完全に一致しない場合、Pandasは自動的に整列します。一致するラベルは計算され、一致しないものはNaNで埋められます。これにより、微妙な「位置のずれ」バグを防げます。
.add(fill_value=0)のようなメソッドは+演算子の代わりに使い、欠損値の埋め方(フィル戦略)を指定できます。
7. Seriesのよく使うメソッド
(1) 統計と概要
| メソッド | 説明 | NumPyの同等機能 |
|---|---|---|
s.mean() |
平均 | np.mean(arr) |
s.median() |
中央値 | np.median(arr) |
s.std() |
標準偏差 | np.std(arr) |
s.min() / s.max() |
最小値 / 最大値 | np.min() / np.max() |
s.sum() |
合計 | np.sum(arr) |
s.describe() |
統計サマリー | なし |
s.value_counts() |
頻度集計 | なし |
s.unique() |
一意な値 | np.unique(arr) |
▶ サンプル:統計メソッド(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
scores = pd.Series([85, 92, 78, 95, 88, 92, 78, 85, 90, 92],
name='exam_score')
print(scores.describe())
# count 10.000000
# mean 87.500000
# std 5.976143
# min 78.000000
# 25% 85.000000
# 50% 89.000000
# 75% 92.000000
# max 95.000000
print(scores.value_counts())
# 92 3
# 85 2
# 78 2
# 95 1
# 90 1
# 88 1
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(2) 確認とフィルタリング
▶ サンプル:head / tail / isin(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
s = pd.Series(range(1, 101)) # 1から100まで
print(s.head()) # 先頭5件
print(s.tail(3)) # 末尾3件
# isin:メンバーシップ判定
fruits = pd.Series(['apple', 'banana', 'cherry', 'apple', 'date'])
print(fruits.isin(['apple', 'cherry']))
# 0 True
# 1 False
# 2 True
# 3 True
# 4 False
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
(3) NaNの処理
▶ サンプル:NaN処理メソッド(難易度 ⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
import numpy as np
s = pd.Series([10, np.nan, 30, np.nan, 50])
print(s.isna()) # NaNを検出
# 0 False
# 1 True
# 2 False
# 3 True
# 4 False
print(s.notna()) # 非NaNを検出
print(s.dropna()) # NaNを削除: [10.0, 30.0, 50.0]
print(s.fillna(0)) # NaNを0で埋める
print(s.fillna(s.mean())) # 平均値で埋める
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
8. 総合例:コーヒーショップの週間売上分析
▶ サンプル:コーヒーショップ売上分析の完全な例(難易度 ⭐⭐⭐)
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
PYTHON
import pandas as pd
import numpy as np
# ============================================
# 総合例:Seriesを使ったコーヒーショップの
# 週間売上分析
# ============================================
# 1. 曜日ラベル付きの売上データを作成
sales = pd.Series({
'Mon': 320, 'Tue': 280, 'Wed': 350,
'Thu': 410, 'Fri': 390, 'Sat': 520, 'Sun': 480
}, name='daily_sales_USD')
# 2. 基本統計
print("=== 週間売上レポート ===")
print(f"合計: ${sales.sum():,}")
print(f"日平均: ${sales.mean():.0f}")
print(f"最高曜日: {sales.idxmax()} (${sales.max():,})")
print(f"最低曜日: {sales.idxmin()} (${sales.min():,})")
print(f"標準偏差: ${sales.std():.0f}")
# 3. 週末と平日の分析
weekday_avg = sales[['Mon','Tue','Wed','Thu','Fri']].mean()
weekend_avg = sales[['Sat','Sun']].mean()
print(f"\n平日平均: ${weekday_avg:.0f}")
print(f"週末平均: ${weekend_avg:.0f}")
print(f"週末の上乗せ: {(weekend_avg/weekday_avg - 1)*100:.1f}%")
# 4. 日次変動
change = sales.pct_change() * 100
print(f"\n最大の前日比下落: {change.min():.1f}%({change.idxmin()})")
print(f"最大の前日比上昇: {change.max():.1f}%({change.idxmax()})")
# 5. 累積売上
cum_sales = sales.cumsum()
print(f"\n売上目標$2,000達成日: {cum_sales[cum_sales >= 2000].index[0]}")
# 6. ランキング
print(f"\n売上ランキング:\n{sales.rank(ascending=False).astype(int)}")
TEXT
ローカルのPython環境(pandas 2.x)で実行してください。Pistonサーバーにはpandasがプリインストールされていません。ローカルにインストール(`pip install pandas`)してから試してください。pandasのバージョンによって実際の値が若干異なる場合があります。
期待される出力(抜粋):
TEXT
=== 週間売上レポート ===
合計: $2,750
日平均: $393
最高曜日: Sat ($520)
最低曜日: Tue ($280)
標準偏差: $82
平日平均: $350
週末平均: $500
週末の上乗せ: 42.9%
最大の前日比下落: -12.5%(Tue)
最大の前日比上昇: 33.3%(Sat)
❓ よくある質問
Q Seriesとndarrayの違いは何ですか?
A Series=ndarray+Index+nameです。Seriesの内部のvaluesはndarrayですが、ラベルインデックスと名前が追加されています。演算時にSeriesはIndexで整列し、ndarrayは位置で整列します。ラベルが不要な場合は
.valuesでndarrayを取り出せばOKです。Q Indexに重複があってもいいですか?
A はい、Pandasは重複するIndex値を許可します。ただしパフォーマンスが低下し、重複ラベルにアクセスすると複数の値(スカラーではなくSeries)が返されます。可能な限りIndexは一意に保つのがベストです。
s.index.is_uniqueで確認できます。Q 演算時にNaNはどう処理されますか?
A デフォルトではNaNは伝播します。NaNを含む演算の結果はNaNになります。
s.mean(skipna=True)のようなメソッドは自動的にNaNをスキップします(これがデフォルトの動作です)。s.dropna()で欠損値を削除し、s.fillna()で埋めることができます。Q value_countsとuniqueの違いは何ですか?
A
unique()は重複を除いた配列を返します(カウントなし)。一方、value_counts()は各値の出現回数を返します(降順でソート)。頻度を知りたいときはvalue_counts、一意なリストだけが欲しいときはuniqueを使ってください。Q Seriesに異なる型を混在させられますか?
A 技術的には可能です(dtype=object)が、推奨されません。混合型のSeriesはベクトル化演算の恩恵を失い、パフォーマンスが大きく低下します。混合型が必要な場合はDataFrameを使ってください。各列が独自の型を持てます。
Q locとiloc、どちらを使うべきですか?
A ラベルによるアクセスにはloc、位置によるアクセスにはilocを使ってください。loc/ilocで意図を明示的に宣言し、
s[...]の曖昧さ(ラベルにも位置にもなり得る)を避けるのがベストです。Q s[label]とs.loc[label]の違いは何ですか?
A Seriesに対しては同じ効果です。ただし
s[...]は曖昧です。ラベルにも位置にもなり得ます(Indexが整数ベースの場合)。s.loc[label]は明示的にラベル指定、s.iloc[pos]は明示的に位置指定を意味するので、明示的な形式が推奨されます。📖 まとめ
- Seriesの本質はndarray+Index+nameであり、内部のvaluesはNumPy配列です
- Indexによりデータが自己記述的になり、ラベルベースのアクセス(loc)と位置ベースのアクセス(iloc)がサポートされます
- 作成方法:リスト / 辞書 / ndarray / スカラーのブロードキャスト。辞書からの作成が最も自然です
- Seriesの演算はIndexで自動的に整列され、一致しないラベルはNaNになります
- ラベルスライスは終点を含む(
'Mon':'Wed'はWedを含む)。位置スライスは終点を含まない(iloc[0:3]は3を含まない) - よく使うメソッド:describe() / value_counts() / head() / tail() / isna() / fillna() / dropna()
- Seriesは一次元データに適しています。二次元の表形式データにはDataFrameを使ってください
📝 練習問題
- 基礎(難易度 ⭐):3つの方法(リスト+index / 辞書 / ndarray)でSeriesを作成し、それぞれのindexプロパティとvaluesプロパティを出力してください。
- 応用(難易度 ⭐⭐):Indexの値が完全には一致しない2つのSeries(例:月次売上)を作成し、add(fill_value=0)で加算して、
+演算子を直接使った場合の結果と比較してください。 - チャレンジ(難易度 ⭐⭐⭐):Seriesを使ってある商品の月次売上データ(12ヶ月分)をシミュレーションし、次の処理を行ってください:累積売上の計算→累計が50,000を突破した月の特定→前月比成長率の算出→成長率が最も高い月と最も低い月の特定。



