我有一个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做到这一点?
发布于 2018-06-15 03:55:15
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
https://stackoverflow.com/questions/50864599
复制相似问题