나는 이런 multiindex의 dataframe 있습니다분리 된 데이터 프레임의 원본 색인 요소가 모두 표시되는 이유는 무엇입니까?
import pandas as pd
import numpy as np
df = pd.DataFrame({'ind1': list('aaaaaaaaabbbbbbbbb'),
'ind2': list('cccdddeeecccdddeee'),
'ind3': list(range(3))*6,
'val1': list(range(100, 118)),
'val2': list(range(70, 88))})
df_mult = df.set_index(['ind1', 'ind2', 'ind3'])
val1 val2
ind1 ind2 ind3
a c 0 100 70
1 101 71
2 102 72
d 0 103 73
1 104 74
2 105 75
e 0 106 76
1 107 77
2 108 78
b c 0 109 79
1 110 80
2 111 81
d 0 112 82
1 113 83
2 114 84
e 0 115 85
1 116 86
2 117 87
지금 제공이
df_subs = df_mult.loc[pd.IndexSlice['a', ['c', 'd'], :], :]
같은 .loc
를 사용하여의 하위 집합을 선택할 수 있습니다 예상
val1 val2
ind1 ind2 ind3
a c 0 100 70
1 101 71
2 102 72
d 0 103 73
1 104 74
2 105 75
I 인쇄
df_subs.index
,451,515,
나는
MultiIndex(levels=[[u'a', u'b'], [u'c', u'd', u'e'], [0, 1, 2]],
labels=[[0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]],
names=[u'ind1', u'ind2', u'ind3'])
왜 아직 레벨 0에서 b
뿐 아니라 a
가있는거야?
인덱스의 요소를 다른 용도로 사용하려면 문제가 될 수 있습니다. 그런 다음
df_subs.index.levels[0]
나에게 그러나
Index([u'a', u'b'], dtype='object', name=u'ind1')
,
df_subs.index.get_level_values('ind1').unique()
나에게 나에게 일관성 보이는
Index([u'a'], dtype='object', name=u'ind1')
을 제공을 제공합니다.
이 버그 또는 의도 된 동작입니까?
에서
이내가 – Wen