前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >特征锦囊:如何利用字典批量修改变量值?

特征锦囊:如何利用字典批量修改变量值?

作者头像
Sam Gor
发布2020-01-15 16:54:54
7860
发布2020-01-15 16:54:54
举报
文章被收录于专栏:SAMshareSAMshare

今日锦囊

特征锦囊:如何利用字典批量修改变量值?

这里我们假设有这么一种情况,一个字段里的变量值,需要把某几个变量值修改为同一个值,然后其他几个变量值修改为另外一个,那么我们有什么简单的办法可以完成呢?这边,我推荐一个字典映射的办法!

我们还是用一下泰坦尼克号的数据集,大家可以在下面的链接去下载数据哈。

Titanic数据集下载:

https://www.kaggle.com/c/titanic/data

代码语言:javascript
复制
# 导入相关库
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
import re

# 导入泰坦尼的数据集
data_train = pd.read_csv("./data/titanic/Train.csv")
# 提取其中几列
data = data_train.loc[:,['PassengerId','Name']]

# 提取称谓
data['Title'] = data['Name'].map(lambda x: re.compile(", (.*?)\.").findall(x)[0])
data.Title.value_counts()

就好像我刚刚所说的,需要把黄色框框里的变量值修改掉,而且是按照我们的想法,比如captDr合为一体,统一叫officer

代码语言:javascript
复制
# 定义一个空字典来收集映射关系
title_Dict = {}
title_Dict.update(dict.fromkeys(['Capt', 'Col', 'Major', 'Dr', 'Rev'], 'Officer'))
title_Dict.update(dict.fromkeys(['Don', 'Sir', 'the Countess', 'Dona', 'Lady'], 'Royalty'))
title_Dict.update(dict.fromkeys(['Mme', 'Ms', 'Mrs'], 'Mrs'))
title_Dict.update(dict.fromkeys(['Mlle', 'Miss'], 'Miss'))
title_Dict.update(dict.fromkeys(['Mr'], 'Mr'))
title_Dict.update(dict.fromkeys(['Master','Jonkheer'], 'Master'))
title_Dict

我们把映射关系用字典来存储,到时候直接可以拿来用。

代码语言:javascript
复制
data['Title'] = data['Title'].map(title_Dict)
data.Title.value_counts()

对于上面的内容,大家有什么疑问可以留言哈~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAMshare 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日锦囊
    • 特征锦囊:如何利用字典批量修改变量值?
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档