API · Pandas
Pandas DataFrame DataFrame.transpose() 関数
Pandas の DataFrame transpose()関数は、DataFrame の行を列に、列を行に変更します。
このページの内容
DataFrame.transpose() を使うと、pandas の DataFrame の行と列を入れ替えられます。返される DataFrame では、元の行ラベルが列ラベルに、元の列ラベルが行ラベルになります。
DataFrame.transpose() の構文
転置するオブジェクトに対して、df.transpose() のようにメソッドを呼び出します。転置された DataFrame が返され、元のオブジェクトも df として引き続き利用できます。
ここでは引数を指定しない呼び出しを扱い、バージョン固有のオプションは対象外とします。
例:DataFrame.transpose() で DataFrame を転置する
この例では、学生の名前、出席状況、得点を含む小さな表を作成します。メソッドを呼び出すと、元の各列が行になり、元の各インデックスラベルが列になります。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Obtained Marks": [90, 75, 82, 64, 45],
}
)
transposed = dataframe.transpose()
print(transposed)
ラベルを見ると、入れ替わる方向を確認しやすくなります。結果では Attendance、Name、Obtained Marks が行ラベルとなり、0 から 4 が列ラベルになります。
同じデータ型の列を持つ DataFrame を転置する
すべての列に整数が入っている場合、入力の値は同じデータ型です。転置した後、元と転置後の両方の列の dtype を確認し、この例が使用中の pandas 環境でどのように表現されるかを見てみましょう。
import pandas as pd
dataframe = pd.DataFrame(
{
"A": [6, 20, 80, 78, 95],
"B": [60, 50, 7, 67, 54],
}
)
transposed = dataframe.transpose()
print("Original values:")
print(dataframe)
print("Transposed values:")
print(transposed)
print("Original dtypes:")
print(dataframe.dtypes)
print("Transposed dtypes:")
print(transposed.dtypes)
この入力には、0 から 4 までのラベルが付いた5行と、A、B の2列があります。そのため、結果は2行5列になります。すべての数値 DataFrame が転置後に同じ dtype になると想定せず、この入力について表示された dtype 情報を確認してください。dtype の挙動は、値や使用される dtype 表現によって異なることがあります。
異なるデータ型の列を持つ DataFrame を転置する
DataFrame の列ごとに異なるデータ型を持たせることができます。この例では、2列に数値が入り、もう1列に名前が入っています。コードでは、操作の前後の値と dtype を表示し、この入力に対する結果を確認できます。
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": [60, 100, 80, 78, 95],
"Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
"Obtained Marks": [90, 75, 82, 64, 45],
}
)
transposed = dataframe.transpose()
print("Original values:")
print(dataframe)
print("Transposed values:")
print(transposed)
print("Original dtypes:")
print(dataframe.dtypes)
print("Transposed dtypes:")
print(transposed.dtypes)
転置後の各行には、元の1列に含まれていた値がまとまります。これらの行には文字列と数値の両方が含まれるため、この混在データの例をあらゆる pandas のバージョンや dtype システムに当てはまる規則とみなさず、結果の dtype を確認してください。このメソッドは軸を入れ替えますが、転置前に異なる列のデータ型を統一するものではありません。