Python 转置数据帧并更改列标题
这个问题是重复的,从某种意义上说,我完全想要 所以,基本上我有以下几点:Python 转置数据帧并更改列标题,python,pandas,Python,Pandas,这个问题是重复的,从某种意义上说,我完全想要 所以,基本上我有以下几点: Time | A | B| 1 |10 | 20| 2 |15 | 25| 我想: Name | 1 | 2| A |10 | 15| B |20 | 25| 因此,首先,我尝试了问题的公认解决方案:df=df.set_index('Time').T.rename_axis('Name').rename_axis(None,1),但它给了我rename_axis()从1到2个位置参数,但给出
Time | A | B|
1 |10 | 20|
2 |15 | 25|
我想:
Name | 1 | 2|
A |10 | 15|
B |20 | 25|
因此,首先,我尝试了问题的公认解决方案:df=df.set_index('Time').T.rename_axis('Name').rename_axis(None,1)
,但它给了我rename_axis()从1到2个位置参数,但给出了3个
。如果我只尝试df.set\u index('Time').T.rename\u axis('Name')
,df会变成:
Time | 1 | 2|
Name
A |10 | 15|
B |20 | 25|
即使如此,如果我用df.columns[0]
打印第一列的名称,我得到1
,而Time
和name
。我希望第一列是Name
如何以这种方式转换df?希望问题是清楚的
感谢您必须指定
轴=1
,而不是1
(我认为上一版本中的函数已更改),并为将索引转换为列添加:
df = df.set_index('Time').T.rename_axis('Name').rename_axis(None, axis=1).reset_index()
print (df)
Name 1 2
0 A 10 15
1 B 20 25
或者在最新版本中,使用参数索引
和列
:
df = df.set_index('Time').T.rename_axis(index='Name', columns=None).reset_index()
嘿,是的,它工作,但它仍然说,第一列的名称是1。我希望能够进行某种形式的df['Name']。@BlueMango-已添加到解决方案中。