python - 将所有列设置为索引,或将数据框转换为多索引系列
问题描述
我有以下数据框:
from to x ratea
1 2 0.4 10
1 4 0.6 80
1 5 0.2 10
2 3 0.2 10
2 4 0.4 10
2 6 0.3 10
3 5 0.2 10
4 6 0.3 10
我的目标是拥有以下内容:
from to
1 2 x 0.4
1 2 ratea 10
1 4 x 0.6
1 4 ratea 80
1 5 x 0.2
1 5 ratea 10
2 3 x 0.2
2 3 ratea 10
2 4 x 0.4
2 4 ratea 10
2 6 x 0.3
2 6 ratea 10
3 5 x 0.2
3 5 ratea 10
4 6 x 0.3
4 6 ratea 10
我将如何进行这种转换?
PSunstack()
也没有帮助(或者我可能没有使用它)。
解决方案
使用set_index
withstack
设置rename_axis
新的索引名称:
s = df.set_index(['from','to']).stack().rename_axis(['from','to','val'])
print (s)
from to val
1 2 x 0.4
ratea 10.0
4 x 0.6
ratea 80.0
5 x 0.2
ratea 10.0
2 3 x 0.2
ratea 10.0
4 x 0.4
ratea 10.0
6 x 0.3
ratea 10.0
3 5 x 0.2
ratea 10.0
4 6 x 0.3
ratea 10.0
dtype: float64
推荐阅读
- uml - 这里应该有什么样的关系
- docker - 从部署在 Kubernetes [Linux 功能] 中的容器执行跟踪路由时不允许操作
- python - Python 退出代码未在 control-m 中捕获
- android-alertdialog - 在没有窗口类型的服务中显示 AlertDialog
- php - 如果发生错误,停止所有文件上传 - PHP
- java - 使用JPA时如何允许arrayList中的重复项?
- vue.js - 我正在使用 gridsome,有没有更好的方法为每个类别创建一个页面?
- cassandra - cassandra 中的 UDT 迁移
- java - 为什么我的 tablayout 总是选择当前选项卡和下一个选项卡?
- ffmpeg - 以txt格式输出亮度和色度数据