首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >重构Python数据帧

重构Python数据帧
EN

Stack Overflow用户
提问于 2018-06-15 03:29:36
回答 1查看 105关注 0票数 -2

我有一个python数据帧,我需要重新构造它以适应用例。

数据框如下:

代码语言:javascript
复制
index  | Probability
Value1 |  .98
Value2 |  .90
Value3 |  .85
Value4 |  .80

我需要重新构造数据帧,如下所示,第一行是报头:

代码语言:javascript
复制
Match1 | Probab1 | Match2 | Prob2 | Match3 | Prob3 | Match4 | Prob4 
Value1 | .98     | Value2 | .90   | Value2 | .85   | Value4 | .80

有没有一种简单的方法可以用Pandas和Python做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-06-15 03:55:15

stack + transpose会给你带来你想要的,只是稍微重命名一下。如果index实际上是您的索引,那么只需执行df = df.reset_index()

代码语言:javascript
复制
import pandas as pd
print(df)
#    index  Probability
#0  Value1         0.98
#1  Value2         0.90
#2  Value3         0.85
#3  Value4         0.80

df = df.stack().reset_index()

# Rename things
df.loc[df.level_1 == 'index', 'level_1'] = 'Match' + (df.loc[df.level_1 == 'index', 'level_0']+1).astype('str')
df.loc[df.level_1 == 'Probability', 'level_1'] = 'Prob' + (df.loc[df.level_1 == 'Probability', 'level_0']+1).astype('str')

df = df.drop(columns='level_0').T.reset_index(drop=True)

df现在是:

代码语言:javascript
复制
        0      1       2      3       4      5       6      7
0  Match1  Prob1  Match2  Prob2  Match3  Prob3  Match4  Prob4
1  Value1   0.98  Value2    0.9  Value3   0.85  Value4    0.8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档