我有一个DataFrame
与UPPERCASE
列名称从一个数据库,我想排序。其中一些是前缀与下划线_
。默认排序把他们放在最后。我必须转换为_
,然后排序,然后转换回_
还是有一个更简单的方法?
这里有一些示例数据。当cl2
的值为1时,那么顺序是 * 正确的 *。如果是1,那么顺序就不那么正确了。
pd.DataFrame({
"cl1": ["foo", "foo", "foo"],
"cl2": ["_FOO", "BAR", "BAZ"]}
).sort_values(["cl1", "cl2"])
字符串
2条答案
按热度按时间yyhrrdl81#
如果转换为MySQL对您有用,您可以将其用作密钥:
字符串
其他选项,按没有
_
的字符串排序,然后按_
的存在排序:型
产出:
型
k75qkfdt2#
我也有类似的奇怪结果。
对我来说,我有一个元组列表,我试图用一个复合键进行排序。
我最终使用replace来删除排序本身中的下划线,如下所示:
字符串
否则我会得到奇怪的结果,比如:
在此之前:
Python sort的工作方式很奇怪。
我尝试了两个结果here结合here来得出这个。