微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何更改熊猫中数据的形状

如何解决如何更改熊猫中数据的形状

我在 Pandas DataFrame 中有一些数据。我提供了以下数据示例:

        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

解决方法

您可以在此处直接使用 pandas.DataFrame.stack

>>> 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
,

为什么不使用 Pandas 的 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')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。