Pandas 从多索引级别获取所有值
Pandas Get All Values from Multiindex levels
给定以下枢轴table:
df=pd.DataFrame({'A':['a','a','a','a','a','b','b','b','b'],
'B':['x','y','z','x','y','z','x','y','z'],
'C':['a','b','a','b','a','b','a','b','a'],
'D':[7,5,3,4,1,6,5,3,1]})
table = pd.pivot_table(df, index=['A', 'B','C'],aggfunc='sum')
table
D
A B C
a x a 7
b 4
y a 1
b 5
z a 3
b x a 5
y b 3
z a 1
b 6
我想访问 'C'(或级别 2)的每个值作为用于绘图的列表。
我想对 'A' 和 'B'(0 级和 1 级)执行相同的操作,以保留间距,以便我也可以使用这些列表。我最终试图通过绘图使用它们来创建这样的东西:
Here's the question from which this one stemmed.
提前致谢!
您可以使用get_level_values
从多索引中获取特定级别的索引值:
In [127]:
table.index.get_level_values('C')
Out[127]:
Index(['a', 'b', 'a', 'b', 'a', 'a', 'b', 'a', 'b'], dtype='object', name='C')
In [128]:
table.index.get_level_values('B')
Out[128]:
Index(['x', 'x', 'y', 'y', 'z', 'x', 'y', 'z', 'z'], dtype='object', name='B')
In [129]:
table.index.get_level_values('A')
Out[129]:
Index(['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'], dtype='object', name='A')
get_level_values
接受级别或标签的 int 参数
请注意,对于较高级别,重复值以与最低级别的索引长度相对应,出于显示目的,您看不到这个
给定以下枢轴table:
df=pd.DataFrame({'A':['a','a','a','a','a','b','b','b','b'],
'B':['x','y','z','x','y','z','x','y','z'],
'C':['a','b','a','b','a','b','a','b','a'],
'D':[7,5,3,4,1,6,5,3,1]})
table = pd.pivot_table(df, index=['A', 'B','C'],aggfunc='sum')
table
D
A B C
a x a 7
b 4
y a 1
b 5
z a 3
b x a 5
y b 3
z a 1
b 6
我想访问 'C'(或级别 2)的每个值作为用于绘图的列表。
我想对 'A' 和 'B'(0 级和 1 级)执行相同的操作,以保留间距,以便我也可以使用这些列表。我最终试图通过绘图使用它们来创建这样的东西:
Here's the question from which this one stemmed.
提前致谢!
您可以使用get_level_values
从多索引中获取特定级别的索引值:
In [127]:
table.index.get_level_values('C')
Out[127]:
Index(['a', 'b', 'a', 'b', 'a', 'a', 'b', 'a', 'b'], dtype='object', name='C')
In [128]:
table.index.get_level_values('B')
Out[128]:
Index(['x', 'x', 'y', 'y', 'z', 'x', 'y', 'z', 'z'], dtype='object', name='B')
In [129]:
table.index.get_level_values('A')
Out[129]:
Index(['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'], dtype='object', name='A')
get_level_values
接受级别或标签的 int 参数
请注意,对于较高级别,重复值以与最低级别的索引长度相对应,出于显示目的,您看不到这个