pandas - Pandas:创建一个新列,在其他两列中的值之间交替
问题描述
如何转换具有 S(开始)、E(结束)、V(值)列的数据框
S E V
1 2 3
2 5 11
5 11 5
并将其转换为:
T V
1 3
2 3
2 11
5 11
5 5
11 5
?
这样我们就可以用 V(y 轴)值在整个区间内相同的方式绘制数据。
编辑:
有些人建议这与“我如何使用melt()?”相同。问题。然而,结果的顺序很重要。
解决方案
或使用 set_index/stack:
df = df.set_index('V').stack().reset_index(-1, drop =True).reset_index(name = 'T')
输出:
V T
0 3 1
1 3 2
2 11 2
3 11 5
4 5 5
5 5 11
推荐阅读
- python - 如何在 discord.py 上的 wait_for 中使用多个检查
- asp.net-mvc - 在 azure 中使用 asp.net 在本地驱动器中创建 CSV 文件
- python - 在 python pygame 中使用 cos() 和 sin() 以恒定速度从玩家发射粒子
- ruby - Ruby -- 上传文件中的百分比编码
- graphics - 为什么我们应该区分光线追踪和光栅化的概念?
- node.js - 如何使用变量作为 Node.js PUT 请求的 json 正文
- ffmpeg - 有没有办法告诉 ffmpeg mpdecimate 只评估帧的特定部分?
- docker - RUN pip install -r requirements.txt 在 Dockerfile 中不起作用
- elasticsearch - Elasticsearch:从评分中排除过滤子句
- javascript - Vue 没有解决离子后退按钮组件的问题