我想转置一个表并重命名索引。
如果我使用现有索引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
答案 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