繁体   English   中英

使用 Python 或 pandas 使用数据集替换另一个数据集中的值

[英]Use a dataset to replace value in another dataset using Python or pandas

我有一个巨大的数据集“A”,用于汽车价格预测,其中包含某些列。 其中一列是“城市”,我想给每个城市排名以将其用于 ML 算法。 这些城市超过 50 个,因此在运行时替换并不会使代码看起来很好。

我想制作包含“城市”和“等级”的a.csv,并在数据集“A”中替换和使用该“等级”。 如何在 python 或 pandas 中做到这一点? 任何示例或代码片段都会有很大帮助。

您可以使用 scikit 的 labelEncoder,它将每个唯一名称转换为代码。 危险:请注意,代码是随机给出的,并且是名义上的(不是序数),这意味着城市的相对数字没有任何意义。 在下面的例子中,东京是 2,巴黎是 1。那是因为东京人口多吗? 或者有什么有意义的? 不。 它是随机的,因此,大多数时候它不适合作为 ML 特征。 Label 编码器的文档在这里

您还可以查看将每个值转换为一列 1 和 0 的 one-hot 编码器。 这通常是您将分类合并到 ML 中的方式。

有关更多信息,请使用“名义与有序分类特征”或“如何将分类合并到 scikit ml”等谷歌搜索...

>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo']
>>> le.transform(["tokyo", "tokyo", "paris"]) 
array([2, 2, 1]...)
>>> list(le.inverse_transform([2, 2, 1]))
['tokyo', 'tokyo', 'paris']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM