0
如何在pyspark中应用索引器,但是按字母顺序排列类别?应用StringIndexer PySpark数据框但按字母顺序排列
我有我的索引值的字典,应用Stringindexer后,但我想命令它不同。
index_df = StringIndexer(inputCol="gender", outputCol="genderIndex")
meta = [f.metadata for f in index_df.schema.fields if f.name == "genderIndex"]
meta
[{u'ml_attr': {u'name': u'genderIndex',
u'type': u'nominal',
u'vals': [u'Male', u'Female']}}]
a=dict(enumerate(meta[0]["ml_attr"]["vals"]))
a=
{0: u'Male', 1: u'Female'}
但是,例如,我想女性为0,并且如果它是一个,B,C
我想A = 0,B = 1,C = 2,等等。
StringIndexer根据标签频率为列标签提供索引。对于你的情况,认为我们可能不得不编码自定义变压器来做到这一点。 – Suresh
我不知道您的用例,但如果您要将索引列保存到字典中,并且不打算将它用于ML管道,请订购该列并执行密集排名。这可能会帮助你。 – Suresh