将行值更改为多索引
changing row values into multi index
考虑这个示例数据:
mem Admits AdmPerK
Month
JAN 1 2 3
FEB 4 5 6
我认为,我正在尝试引入多索引并创建此结果:
JAN FEB
<index> mem Admits AdmPerK mem Admits AdmPerK
0 1 2 3 4 5 6
尝试了以下方法;
df.columns = pd.MultiIndex.from_tuples(df.columns)
df.T
其他几次转换尝试都没有奏效。感谢您抽出宝贵时间查看此内容。
您可以通过链接 stack
、to_frame
和 T
(用于转置)来完成这项工作。要为最终索引指定特定名称,请使用 to_frame
中的参数 name
。举例
#input data
df = pd.DataFrame({'Month': ['JAN', 'FEB'], 'mem': [1, 4],
'Admits': [2, 5], 'AdmPerK': [3, 6]})
df = df.set_index('Month')
print(df)
# mem Admits AdmPerK
# Month
# JAN 1 2 3
# FEB 4 5 6
#reshape
res = df.stack().to_frame(name='whatyouwant').T
print(res)
Month JAN FEB
mem Admits AdmPerK mem Admits AdmPerK
whatyouwant 1 2 3 4 5 6
考虑这个示例数据:
mem Admits AdmPerK
Month
JAN 1 2 3
FEB 4 5 6
我认为,我正在尝试引入多索引并创建此结果:
JAN FEB
<index> mem Admits AdmPerK mem Admits AdmPerK
0 1 2 3 4 5 6
尝试了以下方法;
df.columns = pd.MultiIndex.from_tuples(df.columns)
df.T
其他几次转换尝试都没有奏效。感谢您抽出宝贵时间查看此内容。
您可以通过链接 stack
、to_frame
和 T
(用于转置)来完成这项工作。要为最终索引指定特定名称,请使用 to_frame
中的参数 name
。举例
#input data
df = pd.DataFrame({'Month': ['JAN', 'FEB'], 'mem': [1, 4],
'Admits': [2, 5], 'AdmPerK': [3, 6]})
df = df.set_index('Month')
print(df)
# mem Admits AdmPerK
# Month
# JAN 1 2 3
# FEB 4 5 6
#reshape
res = df.stack().to_frame(name='whatyouwant').T
print(res)
Month JAN FEB
mem Admits AdmPerK mem Admits AdmPerK
whatyouwant 1 2 3 4 5 6