python dateframe的修改值问题——map和replace的区别

通过map函数和replace函数都可以对dataframe某一列的值进行批量修改,但今天运用是发现两者存在差别:

背景:存在一个df,需要将animal列当中的snake修改为python

#生成dataframe
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],
        'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],
        'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
        'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(data,index=labels)

python dateframe的修改值问题——map和replace的区别_第1张图片

 (1)使用replace函数

没有出现异常,正常完成了替换

python dateframe的修改值问题——map和replace的区别_第2张图片

(2)使用map函数

除了值为snake的替换为python,其余值全部变为nan

python dateframe的修改值问题——map和replace的区别_第3张图片

总结(个人推断):map是作用于元素级别的函数,会对animal列里的每一个元素执行map当中的语句,语句当中没有包含的值,只能返回NaN。

 

你可能感兴趣的:(python)