Python 3.x 将标题作为列而不是索引的数据帧转置

Python 3.x 将标题作为列而不是索引的数据帧转置,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,当我转置一个数据帧时,默认情况下头部被视为“索引”。但我希望它是一个列,而不是一个索引。我如何做到这一点 import pandas as pd dict = {'col-a': [97, 98, 99], 'col-b': [34, 35, 36], 'col-c': [24, 25, 26]} df = pd.DataFrame(dict) print(df.T) 0 1 2 col-a 97 98 99 col-b 34

当我转置一个数据帧时,默认情况下头部被视为“索引”。但我希望它是一个列,而不是一个索引。我如何做到这一点

import pandas as pd
dict = {'col-a': [97, 98, 99],
        'col-b': [34, 35, 36],
        'col-c': [24, 25, 26]}

df = pd.DataFrame(dict)
print(df.T)

        0   1   2
col-a  97  98  99
col-b  34  35  36
col-c  24  25  26
期望输出:

        0   1   2   3
  0  col-a  97  98  99
  1  col-b  34  35  36
  2  col-c  24  25  26
使用并设置默认列名称:

df1 = df.T.reset_index()
df1.columns = np.arange(len(df1.columns))
print (df1)
       0   1   2   3
0  col-a  97  98  99
1  col-b  34  35  36
2  col-c  24  25  26
另一个解决方案:

print (df.rename_axis(0, axis=1).rename(lambda x: x + 1).T.reset_index())
#alternative
#print (df.T.rename_axis(0).rename(columns = lambda x: x + 1).reset_index())
       0   1   2   3
0  col-a  97  98  99
1  col-b  34  35  36
2  col-c  24  25  26

使用
reset\u索引尝试
T

df=df.T.reset_index()
print(df)
或:

两种输出:

   index   0   1   2
0  col-a  97  98  99
1  col-b  34  35  36
2  col-c  24  25  26
如果您关心列名,请将其添加到代码中:

df.columns=range(4)
或:

或者,如果不知道列数:

df.columns=range(len(df.columns))
或:

所有输出:

       0   1   2   3
0  col-a  97  98  99
1  col-b  34  35  36
2  col-c  24  25  26
df.columns=range(len(df.columns))
it=iter(range(len(df.columns)))
df=df.rename(columns=lambda x: next(it))
       0   1   2   3
0  col-a  97  98  99
1  col-b  34  35  36
2  col-c  24  25  26