map 用于series值的转化 传入一个映射字典或者一个函数都行
传入字典
传入函数
apply 用于series 和 DataFrame 的转化
Seriesa.apply(function) 函数的参数是每个值
DataFrame.apply(function) 函数的参数是每个series
Seriesa.apply
传入x是series的每个元素
DataFrame.apply
传入的x可以理解为整个df,df在函数里面还可以继续查找某列来进行操作,需要注意的一点就是传入 axis参数, 1 纵向,使用的是一整列,0 横向 一整行
applymap 用于所有值的转化
apply函数的过程
拆分 应用函数 整合
问题
- apply的时候,用series来修改数据,生效问题 2020年11月8日
使用apply的时候,用series对象去修改内部的数据,
在1.1.13版本中,可以直接修改,但是还存在问题,有些数据修改不了,不知道为啥
在1.0.3中,不行
在使用的func中,加个return
可以把修改后的series对象返回给原来的df,需要用新的df变量来接受,
- 将一个df对象存进缓存,取出来的时候做空判断
df = cache.get('df')
不能直接用if df来判断,df对象不接受bool判断,会报错,
同时获取到的None对象,类型是个NoneType,也不能用isinstance来判断
简单的办法就是 is df is None,这样也可以