如何在pandas datafram上交换索引和值

2024-10-01 17:27:35 发布

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

我有一些数据,其中索引是一个阈值,值是trn(真负率),对于两个类,0和1。在

enter image description here

我想要为每个类获取一个数据帧,由tnr索引,对应于tnr的阈值。基本上,我想要这样:

enter image description here

我可以通过以下方式达到这个效果:

pd.concat([pd.Series(data[0].index.values, index=data[0]), 
           pd.Series(data[1].index.values, index=data[1])], 
           axis=1)

或者,概括为任意数量的列:

^{pr2}$

然而,这看起来非常老套而且容易出错。有没有更好的方法来做到这一点,有没有原生的熊猫功能可以做到这一点?在


Tags: 数据data数量index方式阈值seriespd
1条回答
网友
1楼 · 发布于 2024-10-01 17:27:35

您可以将^{}^{}一起使用:

data = pd.DataFrame({0:[10,20,31],10:[4,22,36],
                     1:[7,5,6]}, index=[2.1,1.07,2.13])

print (data)
      0   1   10
2.10  10   7   4
1.07  20   5  22
2.13  31   6  36

df = data.stack().reset_index()
df.columns = list('abc')
df = df.pivot(index='c', columns='b', values='a')
print (df)
b     0     1     10
c                   
4    NaN   NaN  2.10
5    NaN  1.07   NaN
6    NaN  2.13   NaN
7    NaN  2.10   NaN
10  2.10   NaN   NaN
20  1.07   NaN   NaN
22   NaN   NaN  1.07
31  2.13   NaN   NaN
36   NaN   NaN  2.13

相关问题 更多 >

    热门问题