AttributeError:“str”对象没有属性“loc”

2024-10-01 15:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试使用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']}

获取错误:

^{pr2}$

我希望我的数据集像下面这样:

age(in existing dataset)           age(in existing dataset)
25                                 1
35                                 2
45                                 3
73                                 4

Tags: 数据inforage错误traindatasetloc
2条回答

我相信需要省略循环,因为如果trainDataFrame,那么{}是列名,显然{}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

^{pr2}$

最好是使用^{}

r = [0, 25, 35, 45, 55, 120]
g = [1,2,3,4,5]
train['new'] = pd.cut(train['age'], bins=r, labels=g)

数据集似乎是一个字符串,而字符串没有attibute或方法loc。 使用检查数据集的类型

type()

或者

^{pr2}$

并确保它是正确的数据类型。在

相关问题 更多 >

    热门问题