咨询Pandas与Excel排序结果不一致的原因及匹配方案
Pandas与Excel字符串排序结果不一致的原因
我有一个小型DataFrame需要在Python中排序,使用Pandas排序后的结果与Excel的A-Z排序结果不同,期望让Pandas结果和Excel一致。
使用的Pandas代码:
import pandas as pd df = pd.DataFrame({"Col": ['0123A', '0123B', '01-AB']}) df = df.sort_values('Col', ascending=True)
Pandas输出结果:
Col 2 01-AB 0 0123A 1 0123B
Excel输出结果:
Col 0 0123A 1 0123B 2 01-AB
二者排序结果不一致的原因
核心是两者采用的字符串排序规则不同:
- Pandas依赖Python的默认字符串排序逻辑,基于Unicode码点比较:字符
-的Unicode码点是U+002D,数字2的码点是U+0032,前者更小,所以01-AB会排在0123A之前。 - Excel的默认字符串排序规则会调整特殊字符的优先级,默认将非字母数字的符号(比如
-)排在字母数字字符之后,因此0123A、0123B会先于01-AB出现。
内容的提问来源于stack exchange,提问作者rookieprogrammer
相关产品推荐
相关产品推荐

