我有一个单行数据框,如下所示
Num TP1(USD) TP2(USD) TP3(USD) VReal1(USD) VReal2(USD) VReal3(USD) TiV1 (EUR) TiV2 (EUR) TiV3 (EUR) TR TR-Tag
AA-24 0 700 2100 300 1159 2877 30 30 47 10 5
Run Code Online (Sandbox Code Playgroud)
我想要得到一个像下面这样的数据框
ID Price Net Range
1 0 300 30
2 700 1159 30
3 2100 2877 47
Run Code Online (Sandbox Code Playgroud)
这里的逻辑是a. 将有 3 个包含 TP/VR/TV 的列名称。因此,在 ID 中,我们有 1、2 和 3(这些可以通过从列名中提取值或仅使用范围来填充来生成)b。TP1 值进入“价格”列的第一行,TP2 值进入“价格”列的第二行,依此类推 c.VR 和电视也是如此。这些值进入“净值”和“范围”列 d。列“Num”、“TR”和“TR=Tag”与结果无关。
我试过df.filter(regex='TP').stack()。我得到了所有“TP”列,并且可以通过索引([0],[1],[2])访问各个值。我无法将它们全部直接放入一个列中。
我还想知道是否有更简单的方法可以做到这一点。