본문 바로가기
판다스 강의(유튜브)/분류되지 않은 강의들

당신은 코딩에 적합한 사람일까요?

by 김판다t 2023. 1. 24.

 

 

 

 

강의중 나오는 예제를 궁금해 하는 분들이 계셔 코드를 남길게요

 

 

 

input의 예제코드 만들기

 

import pandas as pd
data = [['a1', 'A/B', 'b1'], ['a2', 'B', 'b2'], ['a3', 'A/B/C', 'b3']]
df = pd.DataFrame(data, columns=['col1', 'col2', 'col3'])
df

 

 

 

 

 

 

output을 만드는 코드

 

df1 = pd.get_dummies(df['col2'].str.split('/').explode()).groupby(level=0).sum()
pd.concat([df['col1'], df1, df['col3']], axis=1)

 

 

 

 

 

과정이 궁금하신 분은 아래를 참고하세요

 

 

col2를 /로 분리해서 리스트에 담기

 

df['col2'].str.split('/')

 

 

 

 

위 결과의 리스트를 세로로 펼치기

 

df['col2'].str.split('/').explode()

 

 

 

 

 

하나로 펼쳐진 시리즈를 one hot encoding(모든 고유값을 분리시켜 1과 0으로 표현) 하기

 

pd.get_dummies(df['col2'].str.split('/').explode())

 

 

 

위 결과를 index로 groupby해서 sum 하기

 

pd.get_dummies(df['col2'].str.split('/').explode()).groupby(level=0).sum()

 

 

 

 

혹은 str.get_dummies 함수를 사용하면 더욱 간단하게 가능하다

 

df['col2'].str.get_dummies(sep='/')