无法将值赋给表中的某些列

2024-09-25 08:26:07 发布

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

嗨,我正在尝试在数据帧的列中指定某些值。你知道吗

# Count the number of title counts
full.groupby(['Sex', 'Title']).Title.count()
Sex     Title        
female   Dona              1
         Dr                1
         Lady              1
         Miss            260
         Mlle              2
         Mme               1
         Mrs             197
         Ms                2
         the Countess      1
male     Capt              1
         Col               4
         Don               1
         Dr                7
         Jonkheer          1
         Major             2
         Master           61
         Mr              757
         Rev               8
         Sir               1
Name: Title, dtype: int64

我的数据帧尾部如下所示:

    Age Cabin   Embarked    Fare    Name    Parch   PassengerId Pclass  Sex SibSp   Survived    Ticket  Title
413 NaN NaN S   8.0500  Spector, Mr. Woolf  0   1305    3   male    0   NaN A.5. 3236   Mr
414 39.0    C105    C   108.9000    Oliva y Ocana, Dona. Fermina    0   1306    1   female  0   NaN PC 17758    Dona
415 38.5    NaN S   7.2500  Saether, Mr. Simon Sivertsen    0   1307    3   male    0   NaN SOTON/O.Q. 3101262  Mr
416 NaN NaN S   8.0500  Ware, Mr. Frederick 0   1308    3   male    0   NaN 359309  Mr
417 NaN NaN C   22.3583 Peter, Master. Michael J    1   1309    3   male    1   NaN 2668    Master

我的数据帧的名称是full,我想更改标题的名称。你知道吗

以下是我编写的代码:

# Create a variable rate_title to modify the names of Title
rare_title = ['Dona', "Lady", "the Countess", "Capt", "Col", "Don", "Dr", "Major", "Rev", "Sir", "Jonkheer"]
# Also reassign mlle, ms, and mme accordingly
full[full.Title == "Mlle"].Title = "Miss"
full[full.Title == "Ms"].Title = "Miss"
full[full.Title == "Mme"].Title = "Mrs"
full[full.Title.isin(rare_title)].Title = "Rare Title"

我还在pandas中尝试了以下代码:

full.loc[full['Title'] == "Mlle", ['Sex', 'Title']] = "Miss"

数据帧仍然没有改变。感谢您的帮助。你知道吗


Tags: ofthe数据mastertitlenanmalefull
1条回答
网友
1楼 · 发布于 2024-09-25 08:26:07

使用基于loc的索引并设置匹配的行值-

miss = ['Mlle', 'Ms', 'Mme']
rare_title = ['Dona', "Lady", ...]

df.loc[df.Title.isin(miss), 'Title'] = 'Miss'
df.loc[df.Title.isin(rare_title), 'Title'] = 'Rare Title'

相关问题 更多 >