我正在尝试在熊猫数据集中映射一些非数字值,其中包含来自泰坦尼克号上乘客的信息。现在,我正在尝试绘制乘客登机口的地图。有3个端口,我试图通过为每个端口添加一列来映射它们。如果从该端口出发则返回0,否则返回1。
我试图做一些与性相似的事情。我添加了另一列,如果性别是男性,则为0;如果性别是女性,则为1。那行得通,但是当我尝试使用端口执行此操作时,出现“'float'对象不可下标”错误。
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']]
答案 0 :(得分:2)
在此:For x in passengers_copy['Embarked']
x已经是一个浮点数。
使用浮点数时,它是不可下标的(意味着与列表不同,它不能用方括号下标来访问特定的索引。),因为它只是一个数字而不是字符串/列表。
尝试x[0]
时,就是导致错误的原因。