我有一个如下所示的数据框格式:
0 1 2
rev rev1 rev2 rev3
num num1 num2 num3
我想将列名从0 1 2
更改为第一个索引中的内容并删除该索引并将索引重命名为0.所需的输出为
rev1 rev2 rev3
0 num1 num2 rev4
我的代码就像这样
df.columns = df.loc['rev',:]
df = df.drop('rev')
df.index = ['0']
我得到了输出
rev rev1 rev2 rev3
0 num1 num2 rev4
我的代码的问题是索引可以命名为任何内容而不是rev
。如果它被命名为其他任何我的代码不起作用。另外,我不希望索引名称出现在左上角。
答案 0 :(得分:3)
将opt
与llvm::PassManager
一起使用,将第一行转换为dict即
.iloc
输出:
rev1 rev2 rev3 num num1 num2 num3
如果你想重置索引,那么df rename
答案 1 :(得分:2)
您需要将columns.name
设置为None
或其他值:
df.columns = df.loc['rev',:]
df = df.drop('rev')
df.index = [0]
df.columns.name = None
df = df.rename_axis(None, axis=1)
或仅使用DataFrame
构造函数:
df = pd.DataFrame([df.loc['num'].values], columns=df.loc['rev'].values)
print (df)
rev1 rev2 rev3
0 num1 num2 num3
df = pd.DataFrame(df.loc['num'].values.reshape(-1, len(df.columns)),
columns=df.loc['rev'].values)
print (df)
rev1 rev2 rev3
0 num1 num2 num3
答案 2 :(得分:2)
使用T
df.T.set_index('rev').T
Out[521]:
rev rev1 rev2 rev3
num num1 num2 num3
或
df.reset_index(drop=True).T.set_index(0).T.rename_axis(None,axis=1)
Out[527]:
rev1 rev2 rev3
1 num1 num2 num3