pandas unstack () 및 stack () 함수
15966 단어 필기
먼저 다중 레벨 DataFrame 생성
data = pd.DataFrame(np.arange(6).reshape((2, 3)),
index=pd.Index(['Ohio','Colorado'], name='state'),
columns=pd.Index(['one', 'two', 'three'],
name='number'))
out:
side left right
state number
Ohio one 0 5
two 1 6
three 2 7
Colorado one 3 8
two 4 9
three 5 10
이러한 다중 인덱스에 대한 DataFrame의 경우 다중 인덱스를 스택이라고 합니다.그러나unstack () 및.stack ()는 전자는 줄 색인을 해제한 무더기, 후자는 열 색인을 해제한 무더기로 이해할 수 있다.일단 퇴적 해제의 구체적인 모습을 한번 보도록 하겠습니다.
Mul = pd.MultiIndex.from_product([['A','B'],['one','two','three']])
df = pd.Series(np.arange(6),
index=Mul)
print(df)
print('————')
print(df.unstack())
out:
A one 0
two 1
three 2
B one 3
two 4
three 5
dtype: int32
————
one three two
A 0 2 1
B 3 5 4
다음은 책에 만들어진 DataFrame을 빌려서 Stack()와 unstack()가 어떻게 작동하는지 먼저 df의 모습을 보도록 하겠습니다.
print(df)
out:
side left right
state number
Ohio one 0 5
two 1 6
three 2 7
Colorado one 3 8
two 4 9
three 5 10
df2 = df.unstack('state') # df state
print(df2)
print('——————')
df3 = df2.stack('state') # df2 state
print(df3)
out:
side left right
state Ohio Colorado Ohio Colorado
number
one 0 3 5 8
two 1 4 6 9
three 2 5 7 10
——————
side left right
number state
one Ohio 0 5
Colorado 3 8
two Ohio 1 6
Colorado 4 9
three Ohio 2 7
Colorado 5 10
매개 변수가 들어오지 않으면 기본적으로 가장 안쪽 색인을 해제합니다.동시에 해제된 줄/열 인덱스는 최저 줄/줄 인덱스가 됩니다
실행할 때 unstack () 는 부족한 데이터를 가져올 수 있고, stack () 는 부족한 데이터를 무시할 수 있습니다
In [127]: s1 = pd.Series([0, 1, 2, 3], index=['a', 'b', 'c', 'd'])
In [128]: s2 = pd.Series([4, 5, 6], index=['c', 'd', 'e'])
In [129]: data2 = pd.concat([s1, s2], keys=['one', 'two'])
In [130]: data2
Out[130]:
one a 0
b 1
c 2
d 3
two c 4
d 5
e 6
dtype: int64
In [131]: data2.unstack()
Out[131]:
a b c d e
one 0.0 1.0 2.0 3.0 NaN
two NaN NaN 4.0 5.0 6.0
dropna = false 매개 변수를 입력해도 빈 값은 필터링되지 않습니다.
In [132]: data2.unstack()
Out[132]:
a b c d e
one 0.0 1.0 2.0 3.0 NaN
two NaN NaN 4.0 5.0 6.0
In [133]: data2.unstack().stack()
Out[133]:
one a 0.0
b 1.0
c 2.0
d 3.0
two c 4.0
d 5.0
e 6.0
dtype: float64
In [134]: data2.unstack().stack(dropna=False)
Out[134]:
one a 0.0
b 1.0
c 2.0
d 3.0
e NaN
two a NaN
b NaN
c 4.0
d 5.0
e 6.0
dtype: float64
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
static 간단한 설명static 방법은 일반적으로 정적 방법이라고 부른다. 정적 방법은 어떠한 대상에 의존하지 않고 접근할 수 있기 때문에 정적 방법에 있어this는 없다. 왜냐하면 그 어떠한 대상에도 의존하지 않기 때문이다. 대상이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.