重塑数据帧(从宽到长)

小猫31

我有这个看起来像这样的数据框

df = pd.DataFrame(
    [[2, 4, 'ABC', '01Jan2017', '01Jul2016', '01Jul2017', 0.5, 0.3, 0.7],
     [9, 2, 'DEF', '01Jan2017', '01Jul2016', '01Jul2017', 0.5, 0.3, 0.7]],
    columns=[
        'SEDOL', 'ISIN', 'INSTRUMENT',
        'DT_TRANSACTED', 'DT_SIX_MTHS_BEF', 'DT_SIX_MTHS_AFT',
        'PX_TRANSACTED', 'PX_SIX_MONTHS_BEF', 'PX_SIX_MONTHS_AFT']
)

如何将每行分成 3 行,每行具有每个属性('SEDOL'、'ISIN'、'INSTRUMENT'),同时重新调整 dt 和 px 列。理想情况下,每一行都应拆分为如下结构:

SEDOL, ISIN, INSTRUMENT, DT_TRANSACTED, PX_TRANSACTED 
SEDOL, ISIN, INSTRUMENT, DT_SIX_MTHS_BEF, PX_SIX_MONTHS_BEF 
SEDOL, ISIN, INSTRUMENT, DT_SIX_MTHS_AFT, PX_SIX_MONTHS_AFT 

我试过wide_to_long 和melt 但无济于事。

cs95

您需要使用 将数据分解并使用filter将它们连接回来concat

df = df.set_index(['SEDOL', 'ISIN', 'INSTRUMENT']).sort_index()
i = df.filter(like='DT_')
j = df.filter(like='PX_')

df = pd.concat([
       i.stack().reset_index(level=-1), 
       j.stack().reset_index(level=-1)
    ], 
    axis=1
)
df.columns = ['DT_Var', 'DT_Val', 'PX_Var', 'PX_Val']

                                DT_Var     DT_Val             PX_Var  PX_Val
SEDOL ISIN INSTRUMENT                                                       
2     4    ABC           DT_TRANSACTED  01Jan2017      PX_TRANSACTED     0.5
           ABC         DT_SIX_MTHS_BEF  01Jul2016  PX_SIX_MONTHS_BEF     0.3
           ABC         DT_SIX_MTHS_AFT  01Jul2017  PX_SIX_MONTHS_AFT     0.7
9     2    DEF           DT_TRANSACTED  01Jan2017      PX_TRANSACTED     0.5
           DEF         DT_SIX_MTHS_BEF  01Jul2016  PX_SIX_MONTHS_BEF     0.3
           DEF         DT_SIX_MTHS_AFT  01Jul2017  PX_SIX_MONTHS_AFT     0.7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从宽到长重塑调查数据集

来自分类Dev

重塑R中的数据帧:从宽到长,但“可变”列的长度不相等

来自分类Dev

复杂的重塑从宽到长

来自分类Dev

如何重塑联合数据从宽到长?

来自分类Dev

从宽到长转置熊猫数据帧

来自分类Dev

R:覆盖从宽格式到长格式的数据帧

来自分类Dev

在熊猫中重塑从宽到长的形状

来自分类Dev

如何重塑清单的清单,从宽到长

来自分类Dev

从宽到长格式/结构重塑

来自分类Dev

BigQuery重塑表格,结构从宽到长

来自分类Dev

在R中从宽到长使用重塑

来自分类Dev

从宽到长格式/结构重塑

来自分类Dev

将不整洁和不平衡的数据集从宽范围重塑到长范围

来自分类Dev

将列名中具有多个键的数据框从宽到长重塑

来自分类Dev

重塑包:data.frame从宽到长

来自分类Dev

用指示器向量从宽到长重塑

来自分类Dev

在tidyr中,函数“ gather”用于从宽到长映射数据帧的条件是什么?

来自分类Dev

从宽到长收集数据帧,并使用R中的tidyverse生成新列

来自分类Dev

进行以下从宽到长格式的数据帧转换的好方法?

来自分类Dev

根据上述逻辑,将数据帧从宽域减少到长域的有效方法

来自分类Dev

熊猫从宽到长的数据转换

来自分类Dev

从宽到长的数据转换多列

来自分类Dev

熊猫从宽到长的数据转换

来自分类Dev

使用 dplyr 将数据帧从宽转换为长

来自分类Dev

从宽到长

来自分类Dev

如何将具有不同列名的具有不同列名的数据帧从宽到长转换

来自分类Dev

R重塑从宽到长:多个变量,具有多个指标的观察结果

来自分类Dev

R中从宽到长的复杂重塑(从原始变量名中拉出多个东西)

来自分类Dev

R重塑从宽到长:多个变量,具有多个指标的观察结果

Related 相关文章

  1. 1

    从宽到长重塑调查数据集

  2. 2

    重塑R中的数据帧:从宽到长,但“可变”列的长度不相等

  3. 3

    复杂的重塑从宽到长

  4. 4

    如何重塑联合数据从宽到长?

  5. 5

    从宽到长转置熊猫数据帧

  6. 6

    R:覆盖从宽格式到长格式的数据帧

  7. 7

    在熊猫中重塑从宽到长的形状

  8. 8

    如何重塑清单的清单,从宽到长

  9. 9

    从宽到长格式/结构重塑

  10. 10

    BigQuery重塑表格,结构从宽到长

  11. 11

    在R中从宽到长使用重塑

  12. 12

    从宽到长格式/结构重塑

  13. 13

    将不整洁和不平衡的数据集从宽范围重塑到长范围

  14. 14

    将列名中具有多个键的数据框从宽到长重塑

  15. 15

    重塑包:data.frame从宽到长

  16. 16

    用指示器向量从宽到长重塑

  17. 17

    在tidyr中,函数“ gather”用于从宽到长映射数据帧的条件是什么?

  18. 18

    从宽到长收集数据帧,并使用R中的tidyverse生成新列

  19. 19

    进行以下从宽到长格式的数据帧转换的好方法?

  20. 20

    根据上述逻辑,将数据帧从宽域减少到长域的有效方法

  21. 21

    熊猫从宽到长的数据转换

  22. 22

    从宽到长的数据转换多列

  23. 23

    熊猫从宽到长的数据转换

  24. 24

    使用 dplyr 将数据帧从宽转换为长

  25. 25

    从宽到长

  26. 26

    如何将具有不同列名的具有不同列名的数据帧从宽到长转换

  27. 27

    R重塑从宽到长:多个变量,具有多个指标的观察结果

  28. 28

    R中从宽到长的复杂重塑(从原始变量名中拉出多个东西)

  29. 29

    R重塑从宽到长:多个变量,具有多个指标的观察结果

热门标签

归档