python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > DataFrame某列值的替换map(dict)

关于DataFrame中某列值的替换map(dict)

作者:旺仔的算法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_atcatefirst
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)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文