Data Manipulation


Data Preprocess & EDA


1. pandas로 데이터 합치기

1.1 Concat (Concatenate)

Concat, 열과 행을 기준으로 끝에 더해진다
concat 뜻 : '더한다' 혹은 '붙인다'

Q . DataFrame을 concat하면?
A . 일반적으로는 더해지는 행, 열의 이름이나 인덱스 값이 일치해야한다. 인덱스값이 일치하지 않으면 비어있는 부분에 대해서는 NaN 값으로 채워진다.

# 데이터프레임 x, y

pd.concat([x, y], axis = 1)

# axis=0(default) : row
# axis=1 : column

  • String concat
    • '+' 연산자를 통해서 문자열을 붙인다. ex) '안녕' + '하세요'

🔥 string +

  • 다른 방법으로 문자열을 더하는 방법
    • tostring
    • join
  • 한편 문자열을 나누는 방법
    • split

1.2 Merge

Merge, 공통부분을 기준으로 합쳐진다. 참고사이트

df = df.merge(df2, how = 'inner', on = '종목')
# df.merge("붙일 내용", how = "(방법)", on ="(기준 feature)")
  • how = ‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’

1.3 Conditioning

Conditioning, 조건을 변수화시키고, df에 적용

condition = ( (df['이익'] > 0) & (df['이익'] < 10))
df_subset = df[condition]

1.4 isin

isin, 범주형 (categorical) 데이터를 기준으로 conditioning할 때 사용한다.

df_subset[df_subset['테마'].isin(['주류'])]
# df[(df['테마'] == '주류')]와 동일하다.

1.3 Groupby

Groupby, 선택 열의 값들을 하나로 묶고 sum(), mean() 등 으로 계산해서 나타낸다.

df_subset.groupby('테마').mean()
df_subset.groupby('테마').sum()

1.4 Pandas styling

  • 잡기술... 값 컬러링
def coloring_text(val):
  if val > 0:
    color = 'red'
  else:
    color = 'blue'
  return 'color: %s' % color

df[['순이익률']].style.applymap(coloring_text)

2. Tidy 데이터

Q . Tidy data란?
A . 한 열을 기준으로 새로운 열들을 만들어서 정돈된 데이터를 만들어준다.

  • tidy 데이터는 Seaborn과 같은 시각화 라이브러리에서 유용하게 쓰인다.

2.1 wide → tidy

melt(), 한개의 "tidy" 한 열에 대해서 포함되어야 할 (기준이 되는) 데이터를 선택

tidy1.melt(id_vars = 'index', value_vars = ['A', 'B'])
# index를 기준으로 A, B가 포함되게 데이터 선택

2.2 tidy → wide

pivot_table(), melt()의 반대 과정으로 wide 데이터로 바꿔준다.

tidy1.pivot_table(index = 'row', columns = 'column', values = 'value')
# index: unique identifier
# columns: "wide" 데이터에서 column별로 다르게 하고자 하는 값.
# values: 결과값이 들어가는 곳 (wide 데이터프레임의 내용에 들어갈 값)


👉 과정 한눈에 보기

profile
기록하지 않으면 기록되지 않는다.

0개의 댓글