pandas - 重新排序具有 columns.name 的 pandas 数据框列
问题描述
我想重新排序从生成的数据框的列crosstab
。但是,我使用的方法不起作用,因为它有 columns.name
示例数据
d = {'levels':['High', 'High', 'Mid', 'Low', 'Low', 'Low', 'Mid'], 'converted':[True, True, True, False, False, True, False]}
df = pd.DataFrame(data=d)
df
levels converted
0 High True
1 High True
2 Mid True
3 Low False
4 Low False
5 Low True
6 Mid False
比我crosstab
以前数它
cb = pd.crosstab(df['levels'], df['converted'])
CB
converted False True
levels
High 0 2
Low 2 1
Mid 1 1
我想交换两列的顺序。我试过了,
我猜是因为它有cb[[True, False]]
错误,这是ValueError: Item wrong length 2 instead of 3.
columns.name
converted
解决方案
尝试使用sort_index
, 当列类型为 bool 时,这会使正常的索引切片不起作用
cb.sort_index(axis=1,ascending=False)
Out[190]:
converted True False
levels
High 2 0
Low 1 2
Mid 1 1
推荐阅读
- yii2 - Yii2 为站点地图渲染 xml
- mongodb - 如何在 Pymongo 中选择多个列并应用“where”子句?
- html - 背景尺寸:封面不覆盖整个屏幕
- python-3.x - 在 python 中使用类对象创建 Erdos-Renyi 图
- python - Mongoengine循环引用和reverse_delete_rule:mongoengine.errors.NotRegistered
- android - 如何使用 Google Slides API 在新的演示文稿中定义大师?
- php - Difference between apache vs fpm in PHP Docker image?
- image - 读取svg文件,修改并放入图像
- javascript - 在注册完成之前阻止提示存储用户名/密码?
- mongodb - 计算数组中评分的平均值,然后将字段添加到 MongoDB 中的原始文档