【发布时间】:2021-10-22 23:08:25
【问题描述】:
for dataset in titanic:
dataset['Title'] = dataset.Name.str.extract('([A-Za-z]+)\.', expand=False)
pd.crosstab(titanic['Title'], titanic['Sex'])
for dataset in titanic:
dataset['Title'] = dataset['Title'].replace([
'Lady', 'Countess', 'Capt', 'Col','Don', 'Major',
'Rev', 'Sir', 'Jonkheer', 'Dona', 'Dr'], 'Rare')
dataset['Title'] = dataset['Title'].replace(['Mlle', 'Ms'], 'Miss')
dataset['Title'] = dataset['Title'].replace('Mme', 'Mrs')
titanic[['Title', 'Survived']].groupby(['Title'], as_index=False).mean()
我收到此错误,但看不到错误。我想根据名称中的标题创建一个新功能并将其划分为类别。
AttributeError Traceback (most recent call last)
<ipython-input-22-0537f25296b4> in <module>()
1 for dataset in titanic:
----> 2 dataset['Title'] = dataset.name.str.extract('([A-Za-z]+)\.', expand=False)
3 pd.crosstab(titanic['Title'], titanic['Sex'])
4 for dataset in titanic:
5 dataset['Title'] = dataset['Title'].replace([
AttributeError: 'str' object has no attribute 'name'
【问题讨论】:
-
你能告诉我们
titanic数据框吗? -
我猜“泰坦尼克号”是
dataframe本身,所以在它上面做for只会给你一次它的一个列名。删除循环。 -
您的代码显示“名称”(大写),但错误显示“名称”(小写)。我认为您以某种方式更改了不正确的小写名称,应该回到原来的名称。
-
dataset是什么类型?它是熊猫数据框吗?这是重要的信息。数据框列可以通过索引dataset["Title"]或属性dataset.Title寻址,只要列名符合python 的属性命名规则。坚持使用一种或另一种命名约定可能不会让人感到困惑。
标签: python string dataset data-science attributeerror