我有以下 Dataframe
index,name,score,attempts,qualify
a,Anastasia,12.5,1,yes
b,Dima,9.0,3,no
c,Katherine,16.5,2,yes
d,James,NaN,3,no
e,Emily,9.0,2,no
字符串
我正在尝试使用PandasMap函数来更新名称列,其中名称是詹姆斯或艾米丽的任何测试值99。
codes = {'James':'99','Emily':'99'}
dff['name'] = dff['name'].map(codes)
dff
我得到了以下输出-
index,name,score,attempts,qualify
a,NaN,12.5,1,yes
b,NaN,9.0,3,no
c,NaN,16.5,2,yes
d,99,NaN,3,no
e,99,9.0,2,no
注意,name列值James和艾米丽已经更新为99,但是name的其余值Map为NaN。我们如何忽略不打算Map的索引呢?
5条答案
按热度按时间qaxu7uf21#
问题是map函数会将字典值应用于'name'列中的所有值,而不仅仅是指定的值。要解决这个问题,可以使用replace方法:
这将仅替换指定的值,而其他值保持不变。
suzh9iv82#
我相信您可能正在寻找
replace
而不是map
。如果您真的打算使用
map
,那么您必须提供一个知道如何处理它可能遇到的每个名称的函数。t98cgbkg3#
replace()满足以下要求-
ejk8hzay4#
你可以用一种方法来实现它
628mspwn5#
dff