Python程序用True和False替换'qualify'列值'yes'和'no'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python程序用True和False替换'qualify'列值'yes'和'no'相关的知识,希望对你有一定的参考价值。

import numpy as np
import pandas as pd

exam_data =pd.DataFrame( {'name': ['Anastasia', 'Dima', 'Katherine', 
'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 
'yes']})

 exam_data.set_index([['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'], 
 'name'])



 r1 = exam_data.replace('yes', 'true')
 r2 = exam_data.replace('no', 'false')
 r1

我希望结果如此

attempts    name        qualify score
       a    1           Anastasia   true    12.5
       b    3           Dima        false   9.0
       c    2           Katherine   true    16.5
       d    3           James       false   NaN
       e    2           Emily       false   9.0
       f    3           Michael     true    20.0
       g    1           Matthew     true    14.5
       h    1           Laura       false   NaN
       i    2           Kevin       false   8.0
       j    1           Jonas       true    19.0
答案

最简单的是通过qazxsw poi比较值:

yes

如果想使用exam_data['qualify'] = exam_data['qualify'] == 'yes' print (exam_data) attempts name qualify score 0 1 Anastasia True 12.5 1 3 Dima False 9.0 2 2 Katherine True 16.5 3 3 James False NaN 4 2 Emily False 9.0 5 3 Michael True 20.0 6 1 Matthew True 14.5 7 1 Laura False NaN 8 2 Kevin False 8.0 9 1 Jonas True 19.0 - 如果dict中定义的另一个值没有改变:

replace

或者exam_data['qualify'] = exam_data['qualify'].replace({'yes':True, 'no':False}) - 如果在dict中定义的另一个值然后替换为maps:

NaN

以上是关于Python程序用True和False替换'qualify'列值'yes'和'no'的主要内容,如果未能解决你的问题,请参考以下文章

python - 用两个不同列表中的值替换列表的布尔值[重复]

用数字 (1 / 0) 替换逻辑值 (TRUE / FALSE)

怎样用JS把字符串中的单引号转换成双引号

python3用正则怎么删除指定字符串前面和后面的内容,只保留中间部分的内容,并存入列表?

python中发送post请求时,报错“Unrecognized token 'xxxx': was expecting ('true', 'false'

MSSQL数据库中,我可以给bit字段赋值'false'和'true'吗