Python 重塑多索引以分离
在阅读了pandas和MultiIndex的文档以及这里的许多帖子之后,我仍然没有完全理解这个概念。谁能帮我找到这一行代码吗 我想从xls文件中的数据创建箱线图。线索是显示两个箱线图,一个用于参数=33,另一个用于参数=77。因此,我的数据集需要按参数拆分结果。由于我没有完全理解这个概念,任何尝试去堆叠的尝试都以某种方式失败了Python 重塑多索引以分离,python,pandas,multi-index,Python,Pandas,Multi Index,在阅读了pandas和MultiIndex的文档以及这里的许多帖子之后,我仍然没有完全理解这个概念。谁能帮我找到这一行代码吗 我想从xls文件中的数据创建箱线图。线索是显示两个箱线图,一个用于参数=33,另一个用于参数=77。因此,我的数据集需要按参数拆分结果。由于我没有完全理解这个概念,任何尝试去堆叠的尝试都以某种方式失败了 # -*- coding: utf-8 -*- import pandas import numpy as np wbName= "Test (1).xlsx" wsNa
# -*- coding: utf-8 -*-
import pandas
import numpy as np
wbName= "Test (1).xlsx"
wsName = "Sheet1"
sort_by=['Name','Parameter']
df = pandas.read_excel(open(wbName, "rb"), sheetname=wsName)
id_col=list()
for sb in sort_by:
id_col.append(np.where(df.columns.values==sb)[0][0])
df = pandas.read_excel(open(wbName, "rb"), sheetname=wsName, index_col=id_col)
print(df)
#oneline magic needed
df.plot.box()
因此,打印(df)返回(如预期的那样)
但我假设我只需要一行就可以了(上面的数字不是macthing)
问题是您的
pd.MultiIndex
不是唯一的
假设您的序列是s
df = pd.DataFrame({n: g.reset_index(drop=True) for n, g in s.groupby(level=[0, 1])})
df.stack(0).reset_index(0, drop=True).sort_index()
设置
我已经更新了我的帖子。
Result
Parameter 33 77
Name
sdf 99 567
99 45
99 456
645 456
345 456
ere 99 546
99 465
99 456
645 46
df = pd.DataFrame({n: g.reset_index(drop=True) for n, g in s.groupby(level=[0, 1])})
df.stack(0).reset_index(0, drop=True).sort_index()
import pandas as pd
from io import StringIO
txt = """Name Parameter Value
sdf 33 99
sdf 33 99
sdf 33 99
sdf 33 645
sdf 33 345
sdf 77 567
sdf 77 45
sdf 77 456
sdf 77 456
sdf 77 234
sdf 77 576
sdf 77 45
ere 33 99
ere 33 99
ere 33 99
ere 33 645
ere 33 345
ere 77 567
ere 77 45
ere 77 456
ere 77 456
ere 77 234
ere 77 576
ere 77 45"""
s = pd.read_csv(StringIO(txt), delim_whitespace=True, index_col=[0, 1], squeeze=True)