squeeze を使用して Pandas DataFrame を Series に変換するには:
df.squeeze()このガイドでは、変換の 3 つのシナリオについて説明します。
- 単一の DataFrame 列を Series に変換する (単一列の DataFrame から)
- 特定の DataFrame 列をシリーズに変換する (複数列の DataFrame から)
- 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)) が追加されていることに注意してください)。

次に、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))
変換後の結果のシリーズ:

(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 が取得されます。

例えば、「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」列がシリーズになります。

(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))
すると次のシリーズが出てきます。

インデックスをリセットして整数のみを含むようにしたい場合は、次の構文を使用できます。
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))
以下は整数のみを含む新しいインデックスを持つシリーズです。






