[참고] pandas의 unstack
TL;DR
multiIndex의 series를 보기 쉽게 하는데 unstack
가 편리했습니다.
group by 후 처리
pandas의 DataFrame은 여러 column에서 groupby
를 하면 index가 MultiIndex 이라는 것이 됩니다. 처리하는데 조금 막혔으므로 비망록으로서 했던 것을 씁니다.
환경
여기서는
pandas의 DataFrame은 여러 column에서
groupby
를 하면 index가 MultiIndex 이라는 것이 됩니다. 처리하는데 조금 막혔으므로 비망록으로서 했던 것을 씁니다.환경
여기서는
에서 실행 중입니다.
데이터 준비
예를 들어 다음과 같은 데이터가 있다고 가정합니다.
import datetime
import random
import pandas as pd
item_list = ['A', 'A', 'A', 'B', 'C','C', 'D']
data_records = []
ts = datetime.datetime.now()
for _ in range(1000):
ts += datetime.timedelta(seconds=random.randint(200, 3600))
data_records.append({
'ts': ts,
'wday': ts.weekday(),
'item': random.choice(item_list),
'qty': random.randint(1, 5)
})
df = pd.DataFrame(data_records)
df
로이런 느낌의 것을 얻을 수 있을 것입니다.
여기에서
뭔가 EC 사이트의 로그와 같은 것을 가정합니다.
하고 싶은 일
여기서, 요일마다 어느 아이템이 합계 얼마나 팔리는지를 보고 싶습니다. 사실은
ts
로 기간을 지정하는 것이 보통입니다만, 그것은 두고, 다음과 같은 일을 한다고 생각합니다.df.groupby(['wday', 'item']).qty.sum()
그러면 다음과 같은 것을 얻을 수 있습니다.
나쁘지는 않지만, 또 하나 보기 어렵습니다. 여기서
unstack
df.groupby(['wday', 'item']).qty.sum().unstack()
되었습니다.
참고
자세한 것은 pandas 공식 문서 에 제대로 써 있습니다.
Reference
이 문제에 관하여([참고] pandas의 unstack), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takuyakubo/items/fcb4f5f622108b1f37e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)