Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python程序来取代';合格';列值';是';和';否';真假_Python_Pandas_Replace_Merge_Concatenation - Fatal编程技术网

Python程序来取代';合格';列值';是';和';否';真假

Python程序来取代';合格';列值';是';和';否';真假,python,pandas,replace,merge,concatenation,Python,Pandas,Replace,Merge,Concatenation,我希望结果是 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], 'at

我希望结果是

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

最简单的方法是通过
yes
比较值:

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
如果要使用
替换
-如果dict中定义的其他值未更改:

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
map
-如果dict中定义了另一个值,则替换为
NaN
s:

exam_data['qualify'] = exam_data['qualify'].replace({'yes':True, 'no':False})

耶斯雷尔下面的回答看起来不错;除非您真的想要
'true'
/
'false'
字符串而不是实际的
true
/
false
布尔值。。。在这种情况下,
test\u数据['qualify']=test\u数据['qualify']。替换({'yes':'true','no':'false'})
exam_data['qualify'] = exam_data['qualify'].map({'yes':True, 'no':False})