首页 > 解决方案 > 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()?”相同。问题。然而,结果的顺序很重要。

标签: pandas

解决方案


或使用 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

推荐阅读