You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python处理泰坦尼克号数据集时出现AttributeError: 'str'无name属性如何解决

错误排查与解决方案

错误原因

  • 核心原因:你直接对单个DataFrame类型的titanic变量执行for dataset in titanic遍历操作时,pandas默认迭代返回的是DataFrame的列名字符串,而非你预期的子数据集,因此循环内得到的dataset是字符串,调用.Name/.name属性自然触发AttributeError。
  • 额外问题:从报错日志可以看到你实际执行的代码里写的是小写的.name,而泰坦尼克号公开数据集的姓名字段是首字母大写的Name,列名区分大小写,就算遍历对象正确,写小写也会触发属性错误。
  • 潜在问题:如果你原本是想同时处理训练集、测试集两个数据集,那你没有先将两个DataFrame存入列表再赋值给titanic,同时后续统计交叉表、生存率的代码直接对列表类型的titanic做索引也会触发报错。

解决方案

场景1:需要同时处理训练集+测试集两个数据集

先修正变量定义,再调整后续统计的调用对象:

import pandas as pd
# 第一步:先读取数据集,将两个数据集存入列表后赋值给titanic
train_df = pd.read_csv("train.csv")
test_df = pd.read_csv("test.csv")
titanic = [train_df, test_df]

# 第二步:批量提取Title特征,注意列名是首字母大写的Name
for dataset in titanic:
    dataset['Title'] = dataset.Name.str.extract('([A-Za-z]+)\.', expand=False)

# 第三步:统计交叉表,用带标签的训练集统计
print(pd.crosstab(train_df['Title'], train_df['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')

# 第五步:统计不同头衔的生存率,仅能使用带Survived字段的训练集
print(train_df[['Title', 'Survived']].groupby(['Title'], as_index=False).mean())

场景2:仅处理单个训练集数据

无需循环,直接在DataFrame上操作即可:

import pandas as pd
titanic = pd.read_csv("train.csv")

# 提取Title特征,注意列名是首字母大写的Name
titanic['Title'] = titanic.Name.str.extract('([A-Za-z]+)\.', expand=False)
print(pd.crosstab(titanic['Title'], titanic['Sex']))

# 合并稀有头衔
titanic['Title'] = titanic['Title'].replace([
    'Lady', 'Countess', 'Capt', 'Col','Don', 'Major',
    'Rev', 'Sir', 'Jonkheer', 'Dona', 'Dr'], 'Rare')
titanic['Title'] = titanic['Title'].replace(['Mlle', 'Ms'], 'Miss')
titanic['Title'] = titanic['Title'].replace('Mme', 'Mrs')

# 统计生存率
print(titanic[['Title', 'Survived']].groupby(['Title'], as_index=False).mean())

内容的提问来源于stack exchange,提问作者Nafida Aprilia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:45:03