アンピボット
DataFrameワイド形式からロング形式にアンピボットします。必要に応じて、識別子列はそのまま残します。 これはgroupBy(...).pivot(...).agg(...)逆ですが、集約だけは逆になりません。
Databricks Runtime 11.1で追加されました
構文
unpivot(ids: Union["ColumnOrName", List["ColumnOrName"], Tuple["ColumnOrName", ...]], values: Optional[Union["ColumnOrName", List["ColumnOrName"], Tuple["ColumnOrName", ...]]], variableColumnName: str, valueColumnName: str)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
| 文字列、列、タプル、リスト | 識別子として使用する列。単一の列または列名、あるいは複数の列を指定する場合はリストまたはタプルを指定できます。 |
| 文字列、列、タプル、リスト、オプション | ピボット解除する列。単一の列または列名、あるいは複数の列を指定する場合はリストまたはタプルを指定できます。指定する場合は、空欄であってはなりません。指定されていない場合は、 |
| str | 変数列の名前。 |
| str | 値列の名前。 |
戻り値
DataFrame: ピボットされていないDataFrame 。
注意
Spark Connectに対応しています。
例
Python
df = spark.createDataFrame(
[(1, 11, 1.1), (2, 12, 1.2)],
["id", "int", "double"],
)
df.show()
# +---+---+------+
# | id|int|double|
# +---+---+------+
# | 1| 11| 1.1|
# | 2| 12| 1.2|
# +---+---+------+
from pyspark.sql import functions as sf
df.unpivot(
"id", ["int", "double"], "var", "val"
).sort("id", sf.desc("var")).show()
# +---+------+----+
# | id| var| val|
# +---+------+----+
# | 1| int|11.0|
# | 1|double| 1.1|
# | 2| int|12.0|
# | 2|double| 1.2|
# +---+------+----+