关于DataFrame中某列值的替换map(dict)
更新时间:2024年02月01日 10:33:44 作者:旺仔的算法coding笔记
这篇文章主要介绍了关于DataFrame中某列值的替换map(dict),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
DataFrame某列值的替换map(dict)
pandas 的dataframe 中,有时需要将某列的值替换为另一个值,pandas中可以直接利用map()里传入字典kv对的方式实现替换
如下:
需要将相应的数值编码替换为实际的类别含义。
选择对应的列,调用map传入字典kv 对
#arcCatCodeToChara 为字典kv对。k为原值,v为要替换为的值 arcCatCodeToChara={7434051:'摄影',1331190321:'搞笑',20785:'娱乐',5469252:'家居',27186:'情感',28977:'国际',70:'军事',31281:'科技',6500679:'动漫',13874:'数码',20529:'文化',7030834:'时政',6835763:'时尚',4747317:'房产',6370870:'职场',73:'教育',7431489:'动物',19506:'体育',7886148:'宠物',49:'游戏',4877126 :'天气',71:'育儿',1966500147:'未知',27954:'健康',17741:'小说',5257551:'科学',5524048:'美食',7823953:'美女',75:'收藏',29233:'社会',121:'财经',1161328177:'设计',28978:'历史',108:'星座',109:'汽车',28783:'宗教',30257:'旅游',26162:'彩票',4739907:'风水',1735222577:'影视',27953:'音乐',7761201:'未知1',7760690:'未知2',5400912:'未知3',5588291:'未知4',3689035:'未知5',12589:'未知未打上'} class_merged['class']=class_merged['class'].map(arcCatCodeToChara) # map里传入实现数值替换为对应的铭文汉子字符串 class_merged.head(3) class_merged[['class','ratio_0525','ratio_0526','ratio_0527']].sort_values(by='ratio_0526',ascending=False)
结果:
DataFrame对某一列中单元格的操作map
会遇到dataframe中单元格既不是nan 又不是None 的
比如这种:
created_at | catefirst |
2020-04-01 |
取得这种catefirst为空的需要用到
pd[(pd['catefirst'] == "")]
这时候能把空值找出
如果是对这一列来操作的话 处理空值 填充为0 或者别的 可以用map函数
#只对为空的或者为None的单元格替换为“无” 其余有正常值的保持不变 def catefirstmap(x): if x=="" or x==None: return "无" else: return x
然后通过map对列调用上面的函数
pd['catefirst']=pd['catefirst'].map(catefirstmap)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
最新评论