我有一个巨大的DataFrame,有两列很多:"NAME"
,"VALUE"
。 "NAME"
列的行值之一是"X,Y,V,A"
。
我想转置我的DataFrame,因此"NAME"
值是列,"VALUE"
的平均值是行值。
我使用了pivot功能:
df1 = df.groupby('DEVICE', 'DATE').pivot('NAME').avg('VALUE')
除"X,Y,V,A"
之外的所有NAME值都与上述相符。我不确定如何将"X,Y,V,A"
的4个值与单个值的聚合分开。
IIUC,你需要先split
和explode
字符串:
from pyspark.sql.functions import split, explode
df = df.withColumn("NAME", explode(split("NAME", ",")))
现在您可以分组和透视:
df1 = df.groupby('DEVICE', 'DATE').pivot('NAME').avg('VALUE')