python - pandas中不同长度元组的排序索引
问题描述
>>> df = pd.DataFrame(index=[('B',),('A',),('B','C',),('A','B',),('A','B','C')],data=[1,2,3,4,5],columns=['count'])
>>> df
count
(B,) 1
(A,) 2
(B, C) 3
(A, B) 4
(A, B, C) 5
我想按元组索引排序,以便对 1 个长度的元组进行排序,然后对 2 个长度进行排序,等等。预期的输出是这样的:
count
(A,) 2
(B,) 1
(A, B) 4
(B, C) 3
(A, B, C) 5
我已经尝试过 sort_index,但它只根据第一个成员进行排序,而忽略了长度:
>>> df.sort_index()
count
(A,) 2
(A, B) 4
(A, B, C) 5
(B,) 1
(B, C) 3
解决方案
您还可以reindex
:
print (df.reindex(sorted(df.index,key=lambda d: (len(d), d))))
count
(A,) 2
(B,) 1
(A, B) 4
(B, C) 3
(A, B, C) 5
推荐阅读
- ruby-on-rails - 使用参数在简单表单上自动完成字段
- python - Python的并行处理
- html - 在角度 6 的标签中显示 json 值
- javascript - setState 不更新嵌套对象
- java - 如何从 Java 应用程序向 AngularJS 应用程序发送通知
- python - Python - 以空速速度进行基准测试 - 时间的表观量化
- swift - 有没有办法快速连接 var 的名称?
- sql-server - 如何在 sql server 中将 Gender 作为 MALE 和 FEMALE 分开,而 Gender 的数据类型是 INT
- python - 缺少智能感知,for 循环中的自动完成
- php - 当数据库仍然为空时,默认图像不会显示