squeeze を使用して Pandas DataFrame を Series に変換するには:

df.squeeze()

このガイドでは、変換の 3 つのシナリオについて説明します。

  1. 単一の DataFrame 列を Series に変換する (単一列の DataFrame から)
  2. 特定の DataFrame 列をシリーズに変換する (複数列の DataFrame から)
  3. DataFrame の単一行を Series に変換する

(1)単一のデータフレーム列をシリーズに変換する

簡単な例から始めるために、1 つの列を持つ DataFrame を作成しましょう。

import pandas as pd

data = {"Products": ["Computer", "Printer", "Tablet", "Chair", "Desk"]}

df = pd.DataFrame(data)

print(df)
print(type(df))

Python でコードを実行すると、次の DataFrame が取得されます (DataFrame を取得したことを示すために、コードの下部に print(type(df)) が追加されていることに注意してください)。

Pandas DataFrame をシリーズに変換する方法 1

次に、df.squeeze() を使用して DataFrame を Series に変換できます。

import pandas as pd

data = {"Products": ["Computer", "Printer", "Tablet", "Chair", "Desk"]}

df = pd.DataFrame(data)

my_series = df.squeeze()

print(my_series)
print(type(my_series))

変換後の結果のシリーズ:

Pandas DataFrame をシリーズに変換する方法 2

(2)特定のデータフレーム列をシリーズに変換する

複数の列を持つ DataFrame があり、特定の列を Series に変換したい場合はどうすればよいでしょうか。

たとえば、次のような複数列の DataFrame があるとします。

import pandas as pd

data = {"Products": ["Computer", "Printer", "Tablet", "Chair", "Desk"],
        "Brand": ["A", "B", "C", "D", "E"],
        "Price": [750, 200, 300, 150, 400]
        }

df = pd.DataFrame(data)

print(df)
print(type(df))

コードを実行すると、3 つの列を持つ DataFrame が取得されます。

Pandas DataFrame をシリーズに変換する方法 3

例えば、「Price」列をSeriesに変換することが目標だとします。その場合、コードに以下の構文を追加する必要があります。

my_series = df["Price"].squeeze()

したがって、変換を実行するための完全なコードは次のようになります。

import pandas as pd

data = {"Products": ["Computer", "Printer", "Tablet", "Chair", "Desk"],
        "Brand": ["A", "B", "C", "D", "E"],
        "Price": [750, 200, 300, 150, 400]
        }

df = pd.DataFrame(data)

my_series = df["Price"].squeeze()

print(my_series)
print(type(my_series))

「Price」列がシリーズになります。

Pandas DataFrame をシリーズに変換する方法 4

(3) DataFrameの単一行をシリーズに変換する

最後のシナリオでは、DataFrame 内の 1 つの行を Series に変換する方法について説明します。

たとえば、以下の構文を使用して、「Chair」製品を表す行(関連付けられているインデックス値は 3)を変換できます。

import pandas as pd

data = {"Products": ["Computer", "Printer", "Tablet", "Chair", "Desk"],
        "Brand": ["A", "B", "C", "D", "E"],
        "Price": [750, 200, 300, 150, 400]
        }

df = pd.DataFrame(data)

my_series = df.iloc[3].squeeze()

print(my_series)
print(type(my_series))

すると次のシリーズが出てきます。

Pandas DataFrame をシリーズに変換する方法 5

インデックスをリセットして整数のみを含むようにしたい場合は、次の構文を使用できます。

import pandas as pd

data = {"Products": ["Computer", "Printer", "Tablet", "Chair", "Desk"],
        "Brand": ["A", "B", "C", "D", "E"],
        "Price": [750, 200, 300, 150, 400]
        }

df = pd.DataFrame(data)

my_series = df.iloc[3].reset_index(drop=True).squeeze()

print(my_series)
print(type(my_series))

以下は整数のみを含む新しいインデックスを持つシリーズです。

Pandas DataFrame をシリーズに変換する方法 6