重构Python Dataframe

时间:2018-06-14 19:29:36

标签: python pandas dataframe iteration

我有一个python数据框,我需要重组以适应用例。

数据框如下:

index  | Probability
Value1 |  .98
Value2 |  .90
Value3 |  .85
Value4 |  .80

我需要重构数据帧,如下所示,第一行是标题:

Match1 | Probab1 | Match2 | Prob2 | Match3 | Prob3 | Match4 | Prob4 
Value1 | .98     | Value2 | .90   | Value2 | .85   | Value4 | .80

使用Pandas和Python有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

stack + transpose会通过一些重命名来获得您想要的效果。如果index实际上是您的索引,请执行df = df.reset_index()

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现在是:

        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