Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Spark中的一个热编码列中降低液位_Python_Apache Spark_Pyspark_Apache Spark Ml_One Hot Encoding - Fatal编程技术网

Python 从Spark中的一个热编码列中降低液位

Python 从Spark中的一个热编码列中降低液位,python,apache-spark,pyspark,apache-spark-ml,one-hot-encoding,Python,Apache Spark,Pyspark,Apache Spark Ml,One Hot Encoding,如果我已经有一个由OneHotEncoderEstimator创建的列,我如何能够动态删除其中一个级别 假设您有一个具有4个级别的列(其中一个级别因依赖性而删除),并且您希望删除第二个级别(即,将其放入截取) 所以从类似 row, fruit , encoded 1 , apple , [1, 0, 0] 2 , orange, [0, 1 ,0] 3 , pear , [0, 0, 1] 到 其中一个挑战是每行返回一个。我甚至不知道如何删除向量的“右”索引,因为我只有列名和级别 我知

如果我已经有一个由OneHotEncoderEstimator创建的列,我如何能够动态删除其中一个级别

假设您有一个具有4个级别的列(其中一个级别因依赖性而删除),并且您希望删除第二个级别(即,将其放入截取)

所以从类似

row, fruit , encoded
1  , apple , [1, 0, 0]
2  , orange, [0, 1 ,0]
3  , pear  , [0, 0, 1]

其中一个挑战是每行返回一个。我甚至不知道如何删除向量的“右”索引,因为我只有列名和级别

我知道我可以删除行并重新编码,但我正试图避免这种情况

有人知道如何在Python/Spark 2.3中实现这一点吗

编辑

因此,我想澄清“encoded”列是一个稀疏矩阵(或者是一列SparseVector对象)

见:

这里的一些答案讨论了Spark中稀疏向量和密集向量之间的差异:


是的,所以在本例中,假设我知道我想从“水果”列中删除“pear”级别,但仅在编码列的上下文中。这意味着我仍然希望数据帧保存所有的行,我只想从一个热编码列中删除这个级别/索引。Onehotencoder有一个参数dropLast,使用setter方法在需要时打开/关闭它need@sramalingam24谢谢你的评论,但在这种情况下,我想看看“即时”降低水平的成本是多少(在列被编码之后)。这让我可以编码一次,并根据需要降低级别(这样在我的管道中工作得更好)。
row, fruit , encoded
1  , apple , [1, 0]
2  , orange, [0, 1]
3  , pear  , [0, 0]