转置表然后设置并重命名索引

时间:2016-10-05 13:12:32

标签: pandas

我想转置一个表并重命名索引。

如果我使用现有索引df显示Time

Time  v1   v2
1     0.5  0.3
2     0.2  0.1
3     0.3  0.3

在我df.transpose()之后

Time  1    2    3
v1    0.5  0.2  0.3
v2    0.3  0.1  0.3

有趣的是,如果我现在df.Time,我会

  

AttributeError: 'DataFrame' object has no attribute 'Time'

虽然它会显示在输出中。

我找不到一种方法可以轻松地将列Time重命名为Variable并将其设置为新索引..

我试过df.reset_index().set_index("index"),但我得到的是看起来像这样的东西:

Time   1    2    3
index
v1     0.5  0.2  0.3
v2     0.3  0.1  0.3

1 个答案:

答案 0 :(得分:0)

您只需按rename_axis重命名列名:

print (df.transpose().rename_axis('Variable', axis=1))
Variable    1    2    3
v1        0.5  0.2  0.3
v2        0.3  0.1  0.3

或者通过指定名称设置新列名:

df1 = df.transpose()
df1.columns.name = 'Var'
print (df1)
Var    1    2    3
v1   0.5  0.2  0.3
v2   0.3  0.1  0.3

但我认为您需要从index设置新列,然后将列index重命名为var,同时将列名重置为None

df1 = df.transpose().reset_index().rename(columns={'index':'var'})
df1.columns.name = None
print (df1)
  var    1    2    3
0  v1  0.5  0.2  0.3
1  v2  0.3  0.1  0.3