通常,我们在将数据集进入到模型进行训练时时,需要将数据框中的某些模型不支持的值进行替换,比如性别这种。今天就来讲讲在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
好啦,这应该是一个比较实用的小技巧~