将StringIndexer应用于PySpark数据框中的几列

将StringIndexer应用于PySpark数据框中的几列,第1张

将StringIndexer应用于PySpark数据框中的几列

我发现做到这一点的最好方法是将

StringIndex
一个列表中的几个合并并使用a
Pipeline
执行它们:

from pyspark.ml import Pipelinefrom pyspark.ml.feature import StringIndexerindexers = [StringIndexer(inputCol=column, outputCol=column+"_index").fit(df) for column in list(set(df.columns)-set(['date'])) ]pipeline = Pipeline(stages=indexers)df_r = pipeline.fit(df).transform(df)df_r.show()+-------+--------------+----+----+----------+----------+-------------+|address|          date|food|name|food_index|name_index|address_index|+-------+--------------+----+----+----------+----------+-------------+|1111111|20151122045510| gre| Yin|       0.0|       0.0|          0.0||1111111|20151122045501| gra| Yin|       2.0|       0.0|          0.0||1111111|20151122045500| gre| Yln|       0.0|       2.0|          0.0||1111112|20151122065832| gre| Yun|       0.0|       4.0|          3.0||1111113|20160101003221| gre| Yan|       0.0|       3.0|          1.0||1111111|20160703045231| gre| Yin|       0.0|       0.0|          0.0||1111114|20150419134543| gre| Yin|       0.0|       0.0|          5.0||1111115|20151123174302| ddd| Yen|       1.0|       1.0|          2.0||2111115|      20123192| ddd| Yen|       1.0|       1.0|          4.0|+-------+--------------+----+----+----------+----------+-------------+


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5662225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存