多列到单列熊猫

时间:2020-04-21 19:09:10

标签: python pandas numpy

在Pandas DF中将标题转换为一列,将多列转换为另一列:

DF:

df = pd.DataFrame(np.random.randint(0,10,size=(3,3)),columns =["2000","2001","2002" ])
df.index = pd.Index(["A","B","C"],name = "random")
df

OP:

        2000    2001    2002
random          
A        1       5       4
B        8       2       2
C        0       3       6

期望的操作数-唯一索引和2列:

     0     1    

0   2000   1
1   2000   8
2   2000   0
3   2001   5
4   2001   2
5   2001   3
6   2002   4
7   2002   2
8   2002   6

我使用df.iterrows进行迭代,这对于一个大型DF来说要花很长时间,是否还有其他方法可以做到这一点?任何建议都会很棒。

1 个答案:

答案 0 :(得分:1)

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(3,3)),columns =["2000","2001","2002" ])
df.index = pd.Index(["A","B","C"],name = "random")

df=pd.melt(df, value_vars=["2000","2001","2002" ])
print(df)

# output
  variable  value
0     2000      5
1     2000      1
2     2000      2
3     2001      5
4     2001      4
5     2001      6
6     2002      4
7     2002      9
8     2002      3