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