Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';str';对象没有属性';loc';_Python_Pandas - Fatal编程技术网

Python 属性错误:';str';对象没有属性';loc';

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循环来存储年龄值,如下所示

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
我们得到的是:

将年龄分为3类:
  • 儿童: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)