MultiIndex가있는 팬더 DataFrame이 있다고 가정합니다. 특정 값의 레이블이있는 모든 행을 가져 오려고합니다. 어떻게 할 수 있니?팬더 MultiIndex가 레이블 값이있는 모든 행을 얻습니다.
내 첫번째 생각은 ...
df[df.index.labels == 1].head()
부울 마스크했지만이 작동하지 않습니다.
감사합니다!
MultiIndex가있는 팬더 DataFrame이 있다고 가정합니다. 특정 값의 레이블이있는 모든 행을 가져 오려고합니다. 어떻게 할 수 있니?팬더 MultiIndex가 레이블 값이있는 모든 행을 얻습니다.
내 첫번째 생각은 ...
df[df.index.labels == 1].head()
부울 마스크했지만이 작동하지 않습니다.
감사합니다!
사용할 색인을 지정해야합니다. 내 예제에서 나는 두 번째 인덱스가 (이 팬더의 Multiindex 페이지 그렇게 때문에 내 dataframe이 s의)에 나섭니다 :
s[s.index.labels[1]==1]
입력 할 경우 실제로 인덱스를 구성하는 방법을 볼 수 있습니다
s.index
그 결과 구조는 다음과 같습니다
>>> import pandas as pd
>>> import numpy as np
>>> arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
... [1, 2, 1, 2, 1, 2, 1, 2]]
...
>>> tuples = list(zip(*arrays))
>>> index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
>>> s = pd.Series(np.random.randn(8), index=index)
>>> s[s.index.labels[1]==1]
first second
bar 2 -0.304029
baz 2 -1.216370
foo 2 1.401905
qux 2 -0.411468
dtype: float64
:
MultiIndex(levels=[['bar', 'baz', 'foo', 'qux'], [1, 2]],
labels=[[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]],
names=['first', 'second'])
나는 전체 코드를 아래 6,
나는 xs
(cross-section) 사용합니다 : (는 A 인덱스를 삭제하지 않고)
In [13]: df.xs(key=1, level="A")
Out[13]:
C
B
2 3
drop_level=False
를 사용하여 필터를 수행합니다 :
In [11]: df = pd.DataFrame([[1, 2, 3], [3, 4, 5]], columns=list("ABC")).set_index(["A", "B"])
In [12]: df
Out[12]:
C
A B
1 2 3
3 4 5
는 다음 1에 대한 동일한 수준이있는 사람들을 취할 수
In [14]: df.xs(key=1, level="A", drop_level=False)
Out[14]:
C
A B
1 2 3
대체 솔루션 :
In [62]: df = pd.DataFrame({'idx1': ['A','B','C'], 'idx2':[1,2,3], 'val': [30,10,20]}).set_index(['idx1','idx2'])
In [63]: df
Out[63]:
val
idx1 idx2
A 1 30
B 2 10
C 3 20
In [64]: df[df.index.get_level_values('idx2') == 2]
Out[64]:
val
idx1 idx2
B 2 10
In [65]: df[df.index.get_level_values(1) == 2]
Out[65]:
val
idx1 idx2
B 2 10
인덱스를 다시 열로 변환 한 다음 필터링 할 수 있습니다. 확실히 하나의 색인으로 작동합니다. 그것은 multiindex와 함께 작동해야하지만 확실하지 않습니다. –
작업중인 데이터 프레임을 보여줍니다. – Merlin
왜 downvote? 이것은 분명히 어딘가에 문서화되어 있습니까? 불분명하니? 도움이되지 않습니까? 그것은 분명히 나를 도왔을거야 http://meta.stackoverflow.com/questions/252677/when-is-it-justifiable-to-downvote-a-question –