weixin_39017744
weixin_39017744
采纳率71.1%
2019-11-10 06:26 浏览 4.9k

请问Python中如何转化带有字符串的dataframe成纯数字dataframe?

20

这个问题出现在画热度图的时候,热度图似乎只读数字部分不认字符部分。用pandas包读取的csv数据文件有很多列都是字符,导致无法正常画出热度图。求个转化方法。字符全都是名字或者商品之类的,直接用数字唯一值代替字符唯一值就好。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • weixin_42678268 bj_0163_bj 2019-11-10 23:24

    用map 啊,给你参考一下
    mapping1 = {'一线':1, '二线':2, '三线':3, '四线':4, '五线':5, '六线':6}
    data['城市级别'] = data['城市级别'].map(mapping1)

    点赞 5 评论 复制链接分享
  • WSYXWZ WSYXWZ 2019-11-11 09:14

    给你个方法:
    def convert_func(x):
    try:
    x=float(x)
    except:
    x=0# 或者你想要替换成的数字
    return x
    data['col'] = data['col'].map(lambdax\ x: convert_func(X))

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2019-11-10 10:11

    关键要看你的字符是什么,它们有没有关联,虽然随便转换成数字都可以画图,但是我想你更希望连续的数据放在一起。
    比如 'Jan' 'Feb' 'Mar' 'Apr' ... 你转换成 1 2 3 4,它相邻的月份在一起,但是你转换成1 8 4 9 ... 这种毫无规律的,那么就不好了。
    所以要先知道你字符串的性质。

    如果没有规律,那么可以用df.groupby(df['字符串列'])得到分组,相同的放一组,然后你再给它们编号,修改回去即可。

    点赞 评论 复制链接分享
  • qq_37259672 墨蝶 2020-11-06 09:10

    sklearn里面有可以直接帮你转换的函数,你可以参考文档https://scikit-learn.org/stable/modules/feature_extraction.html

    点赞 评论 复制链接分享

相关推荐