Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total



GitHub Contribution
Loading data ...
관리 메뉴

초보 개발자의 일기

Pandas - Reshaping 본문

소소한 공부 일기/데이터 분석

Pandas - Reshaping

Da다 2021. 5. 9. 16:14

변형

예시를 위한 튜플 생성

tuples = list(zip(*[['bar', 'bar', 'baz', 'baz',
                     'foo', 'foo', 'qux', 'qux'],
                    ['one', 'two', 'one', 'two',
                     'one', 'two', 'one', 'two']]))
tuples
[('bar', 'one'),
 ('bar', 'two'),
 ('baz', 'one'),
 ('baz', 'two'),
 ('foo', 'one'),
 ('foo', 'two'),
 ('qux', 'one'),
 ('qux', 'two')]

Multi Index 생성

index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
index
MultiIndex(levels=[['bar', 'baz', 'foo', 'qux'], ['one', 'two']],
                   labels=[[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]],
                   names=['first', 'second'])

랜덤값으로 데이터프레임 생성

df = pd.DataFrame(np.random.randn(8, 2), index=index, columns=['A', 'B'])
df

df2 생성

df2 = df[:4]
df2


Stack (스택)

스택을 이용하면 데이터를 쌓아서 보여준다.

stacked = df2.stack()
stacked
first second
bar one A   0.345619
           B  -0.226058
     two A  -0.868071
           B  -0.201266
baz one A  1.251799
           B  -1.473504
     two A  -0.700878
           B  -2.104130
dtype: float64

unstack()

스택을 해제하고 원상복귀

stacked.unstack()

stacked.unstack(1)

stacked.unstack(0)


Pivot tables

예시용 데이터프레임 생성

df = pd.DataFrame({'A': ['one', 'one', 'two', 'three'] * 3,
                   'B': ['A', 'B', 'C'] * 4,
                   'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2,
                   'D': np.random.randn(12),
                   'E': np.random.randn(12)})
df

피벗테이블 생성

pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])

 

 

10 minutes to pandas를 바탕으로 한 학습 기록입니다

'소소한 공부 일기 > 데이터 분석' 카테고리의 다른 글

Web Crawling - 크롤링을 위한 준비사항  (0) 2021.05.12
Pandas - 엑셀 관련 판다스  (0) 2021.05.09
Pandas - Grouping  (0) 2021.05.09
Pandas - Merge  (0) 2021.05.09
Pandas - Operations  (0) 2021.05.08
Comments