pandas小技巧之--值替换

本文介绍如何使用Pandas将性别字段从文本形式转换为数值形式,提供了两种实用的方法实现这一转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     通常,我们在将数据集进入到模型进行训练时时,需要将数据框中的某些模型不支持的值进行替换,比如性别这种。今天就来讲讲在pandas中进行特定值替换。

首先数据格式如下:

df = pd.DataFrame({"id": [25,53,15,47,52,54,45,9], "sex": list('mfmfmfmf'), 'score': [1.2, 2.3, 3.4, 4.5,6.4,5.7,5.6,4.3],"name":['daisy','tony','peter','tommy','ana','david','ken','jim']})

df
Out[122]: 
   id   name  score sex
0  25  daisy    1.2   m
1  53   tony    2.3   f
2  15  peter    3.4   m
3  47  tommy    4.5   f
4  52    ana    6.4   m
5  54  david    5.7   f
6  45    ken    5.6   m
7   9    jim    4.3   f

现在要求是将男性(m)替换为1,女性替换为0,

第一种方法:

代码如下:

#第一种方法
df.ix[df['sex']=='f','sex']=0
df.ix[df['sex']=='m','sex']=1
df
Out[138]: 
   id   name  score sex
0  25  daisy    1.2   1
1  53   tony    2.3   0
2  15  peter    3.4   1
3  47  tommy    4.5   0
4  52    ana    6.4   1
5  54  david    5.7   0
6  45    ken    5.6   1
7   9    jim    4.3   0

注:在上面的代码中,逗号后面的‘sex’起到固定列名的作用。

第二种方法:

代码如下:

#第二种方法:
df.sex[df['sex']=='m']=1
df.sex[df['sex']=='f']=0
df
Out[146]: 
   id   name  score sex
0  25  daisy    1.2   1
1  53   tony    2.3   0
2  15  peter    3.4   1
3  47  tommy    4.5   0
4  52    ana    6.4   1
5  54  david    5.7   0
6  45    ken    5.6   1
7   9    jim    4.3   0

好啦,这应该是一个比较实用的小技巧~

 

 

 

 

 

 

 

 

 

pandas中,我们可以使用replace()函数来替换数据。replace()函数的基本结构是df.replace(to_replace, value),其中to_replace是需要替换,value是替换后的。例如,如果我们要将数据框中的某些特定替换成其他,可以使用replace()函数来实现。注意,这样的操作并没有改变文档的源数据,如果要改变源数据,需要使用inplace=True参数。通过将inplace参数设置为True,我们可以直接在原数据上进行更改。这样的操作在数据处理过程中非常方便和实用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pandas小技巧--替换](https://blog.youkuaiyun.com/weixin_37536446/article/details/81266273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pandas替换和部分替换(replace)](https://blog.youkuaiyun.com/qq_41551450/article/details/104944658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值