首页 > 解决方案 > 使用 Python 将 Dataframe 中的字符串值映射为整数

问题描述

所以我有一个数据集,其中有一列包含颜色名称(红色、蓝色、绿色),我想将这些字符串值转换为 int/float 以适应分类器。我打算使用 Python 字典,其中键作为颜色名称,值作为数字。这是我的代码:

color_dict = {'red':1, 'blue':2, 'green':3}
for i in train['column_name']:
     train['column_name'][i] = color_dict[i]
print(train['column_name'])

可悲的是,这没有奏效。我应该做些什么不同的事情才能让它发挥作用?

标签: pythonpandas

解决方案


答案在问题中:)

train["column_name"] = train["column_name"].map(color_dict)

请参阅文档以获取地图。

您的解决方案不起作用的原因有点棘手。当您像以前一样访问一个值时(使用链式括号),您正在处理 DataFrame 对象的副本。相反,用于train.loc[i, "column_name"] = color_dict[i]设置列中的单个值。有关更多详细信息,请参见此处


推荐阅读