我有一个带有疾病症状的数据框,我想在整个数据框上运行FP Growt。FP Growt需要一个数组作为输入,它使用以下代码:
dfFPG = (df.select(F.array(df["Gender"],
df["Polyuria"],
df["Polydipsia"],
df["Sudden weight loss"],
df["Weakness"],
df["Polyphagia"],
df["Genital rush"],
df["Visual blurring"],
df["Itching"]).alias("features")
from pyspark.ml.fpm import FPGrowth
fpGrowth = FPGrowth(itemsCol="features", minSupport=0.3, minConfidence=0.2)
model = fpGrowth.fit(dfFPG)
model.freqItemsets.show(20,truncate=False)
功能列表更长,如果我必须更改df的名称,我必须使用查找和替换。我知道我可以使用F.col("Gender")
而不是df["Gender"]
,但是有没有一种方法可以一次将F.array()
中的所有列都放进去,并且能够排除像df["Age"]
这样的少数列?
或者,有没有其他我不知道的为FP Growt准备分类特征的有效方法
您可以使用
df.columns
获取所有列名,并将它们全部放入array
:相关问题 更多 >
编程相关推荐