佛山盼清风 2021-02-02 17:06 采纳率: 0%
浏览 121

为什么 pandas 的 sort_valiues 方法对汉字内容的列排序失败?

import pandas as pd

dff = pd.DataFrame({
    'col1': ['啊', '八', '卡', '丫', '哇', '扒'],
    'col2': [2, 1, 9, 8, 7, 4],
    'col3': [0, 1, 9, 4, 2, 3],
})

print(dff)
dff.sort_values(by='col1', inplace=True)
print('-'*20)
print(dff)

如上面的代码,输出结果如下:

  col1  col2  col3
0    啊     2     0
1    八     1     1
2    卡     9     9
3    丫     8     4
4    哇     7     2
5    扒     4     3
--------------------
  col1  col2  col3
3    丫     8     4
1    八     1     1
2    卡     9     9
4    哇     7     2
0    啊     2     0
5    扒     4     3

 

明显第二列没有排序成功。

为什么?

  • 写回答

2条回答 默认 最新

  • coagenth 2021-02-02 17:54
    关注

    print([x.encode('unicode_escape').decode('gbk') for x in dff.col1])

    得到:

    ['\\u554a', '\\u516b', '\\u5361', '\\u4e2b', '\\u54c7', '\\u6252']

    应该是按汉字在unicode中的编码顺序从低到高排列的

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?