如何更改Pandas中数据的形状

2024-05-14 06:38:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在熊猫数据框中有一些数据。我提供了以下数据样本:

        V1          V2          V3          V4          V5          V6          V7          V8
ID                              
B7393   7.418801    0.805774    0.837428    0.866967    0.773911    0.825854    0.858694    0.763436
C7096   7.418801    0.857844    0.859367    0.861062    0.804877    0.829015    0.852472    0.763436

我想做的是改变数据如何呈现在下面的示例中。我该怎么做呢?我是python新手,还在学习

ID
B7393       
    V1  7.418801
    V2  0.805774
    V3  0.837428
    V4  0.866967
    V5  0.773911
    V6  0.825854
    V7  0.858694
    V8  0.763436
C7096       
    V1  7.418801
    V2  0.857844
    V3  0.859367
    V4  0.861062
    V5  0.804877
    V6  0.829015
    V7  0.852472
    V8  0.763436

Tags: 数据id示例v3v2v4v1样本
2条回答

为什么不使用熊猫“wide_to_long()

pd.wide_to_long(df.reset_index(), stubnames=['V'], i=['index'], j='V_thing')

或者melt()

pd.melt(
    df.reset_index(),
    id_vars =['index'],
    value_vars =['V'+str(i) for i in list(range(1,9))]
).set_index('index')

您可以在此处直接使用^{}

>>> df.stack()
ID       
B7393  V1    7.418801
       V2    0.805774
       V3    0.837428
       V4    0.866967
       V5    0.773911
       V6    0.825854
       V7    0.858694
       V8    0.763436
C7096  V1    7.418801
       V2    0.857844
       V3    0.859367
       V4    0.861062
       V5    0.804877
       V6    0.829015
       V7    0.852472
       V8    0.763436
dtype: float64

相关问题 更多 >