首页 > 解决方案 > Python:“浮动”对象不可下标

问题描述

我正在尝试在包含泰坦尼克号乘客信息的熊猫数据集中映射一些非数值。现在我正在尝试绘制乘客登船的港口地图。有 3 个端口,我试图通过为每个端口添加一列来映射它们。0 如果他们从那个港口出发 1 如果不是。

我试着做一些与性类似的事情。我添加了另一列,如果性别是男性,则添加 0,如果性别是女性,则添加 1。这行得通,但是当我尝试对端口执行此操作时,我得到一个“'float' object is not subscriptable”错误。

import pandas as pd
#opening the data
train_path = #path to data set
passengers = pd.read_csv(train_path)

#creating a copy
passengers_copy = passengers

#mapping sex
passengers_copy['SexBin'] = [0 if x[0] == 'm' else 1 for x in passengers_copy['Sex']]

#trying to map the first port
passengers_copy['EmbarkedS'] = [0 if x[0] == 'S' else 1 for x in passengers_copy['Embarked']]

标签: python

解决方案


在这:For x in passengers_copy['Embarked'] x 已经是一个浮点数。

使用浮点数,它是不可下标的(这意味着与列表不同,它不能用方括号下标来访问特定索引。)因为它只是一个数字而不是字符串/列表。

当您尝试x[0]时,这就是导致错误的原因。


推荐阅读