Python 属性错误:';str';对象没有属性';loc';
尝试使用for循环来存储年龄值,如下所示Python 属性错误:';str';对象没有属性';loc';,python,pandas,Python,Pandas,尝试使用for循环来存储年龄值,如下所示 for dataset in train: dataset.loc[(dataset['age'] > 15) & (dataset['age'] <= 25), 'age'] = 1 dataset.loc[(dataset['age'] > 25) & (dataset['age'] <= 35), 'age'] = 2 dataset.loc[(dataset['age'] > 35) & (d
for dataset in train:
dataset.loc[(dataset['age'] > 15) & (dataset['age'] <= 25), 'age'] = 1
dataset.loc[(dataset['age'] > 25) & (dataset['age'] <= 35), 'age'] = 2
dataset.loc[(dataset['age'] > 35) & (dataset['Age'] <= 45), 'age'] = 3
dataset.loc[(dataset['age'] > 45) & (dataset['age'] <= 55), 'age'] = 4
dataset.loc[ dataset['age'] > 55, 'age']}
我希望我的数据集如下所示:
age(in existing dataset) age(in existing dataset)
25 1
35 2
45 3
73 4
似乎您的数据集是一个字符串,而字符串没有attibute或loc方法。 使用检查数据集的类型
type()
或
并确保它是正确的数据类型。您的数据集似乎是一个字符串,而字符串没有attibute或method loc。 使用检查数据集的类型
type()
或
查看它是正确的数据类型。我认为需要省略循环,因为如果
train
是DataFrame
,那么dataset
是列名,显然string
s:
np.random.seed(100)
train = pd.DataFrame(np.random.randint(10, size=(3,3)), columns=['age','col1','col2'])
print (train)
age col1 col2
0 8 8 3
1 7 7 0
2 4 2 5
for dataset in train:
print (dataset)
age
col1
col2
我认为需要省略循环,因为如果
train
是DataFrame
,那么dataset
是列名,显然string
s:
np.random.seed(100)
train = pd.DataFrame(np.random.randint(10, size=(3,3)), columns=['age','col1','col2'])
print (train)
age col1 col2
0 8 8 3
1 7 7 0
2 4 2 5
for dataset in train:
print (dataset)
age
col1
col2
只要这样做:
Train = [train]#converting the train dataframe into list
for dataset in Train:
dataset.loc[ dataset['Fare'] <= 17, 'Fare'] = 0,
dataset.loc[(dataset['Fare'] > 17) & (dataset['Fare'] <= 30), 'Fare'] = 1,
dataset.loc[(dataset['Fare'] > 30) & (dataset['Fare'] <= 100), 'Fare'] = 2,
dataset.loc[ dataset['Fare'] > 100, 'Fare'] = 3
Train=[Train]#将列车数据帧转换为列表
对于列车中的数据集:
dataset.loc[dataset['Fare']17)和(dataset['Fare']30)以及(dataset['Fare']100,'Fare']=3
只需执行以下操作:
Train = [train]#converting the train dataframe into list
for dataset in Train:
dataset.loc[ dataset['Fare'] <= 17, 'Fare'] = 0,
dataset.loc[(dataset['Fare'] > 17) & (dataset['Fare'] <= 30), 'Fare'] = 1,
dataset.loc[(dataset['Fare'] > 30) & (dataset['Fare'] <= 100), 'Fare'] = 2,
dataset.loc[ dataset['Fare'] > 100, 'Fare'] = 3
Train=[Train]#将列车数据帧转换为列表
对于列车中的数据集:
dataset.loc[dataset['Fare']17)和(dataset['Fare']30)以及(dataset['Fare']100,'Fare']=3
将年龄分为3类:
- 儿童:0-10
- 青少年:10-17岁
- 成人:18-65
- 长者:65-110
- 儿童:0-10
- 青少年:10-17岁
- 成人:18-65
- 长者:65-110
你能展示你的
数据集
结构吗?你能展示你的数据集
结构吗?非常感谢你,我删除了循环,现在它工作正常。非常感谢你,我删除了循环,现在它工作正常。我有同样的错误,你可以使用上面的代码,它对我很好,或者你可以使用pd.cut,它也是一个有效的。谢谢。我也有同样的错误,你可以使用上面的代码,这对我来说非常好,或者你可以使用pd.cut,这也是一个有效的。谢谢
Train = [train]#converting the train dataframe into list
for dataset in Train:
dataset.loc[ dataset['Fare'] <= 17, 'Fare'] = 0,
dataset.loc[(dataset['Fare'] > 17) & (dataset['Fare'] <= 30), 'Fare'] = 1,
dataset.loc[(dataset['Fare'] > 30) & (dataset['Fare'] <= 100), 'Fare'] = 2,
dataset.loc[ dataset['Fare'] > 100, 'Fare'] = 3
r = [0,10,17,65, 110]
g = ['Child','Teen','Adult','Elderly']
train['AgeCtg'] = pd.cut(train['Age'], bins = r, labels = g)
train.head(50)