넓은 데이터 (데이터 분석을 위한 판다스 입문)

넓은 데이터

  • 데이터의 열 자체가 어떤 값을 의미하는 경우가 있다
  • 이런 값들은 열이 옆으로 길게 늘어선 형태가 된며 “넓은 데이터”라고 부른다
  • melt메서드를 많이 사용하게 된다

melt 메서드

메서드 인자 설명
id_vars 위치를 그대로 유지할 열의 이름을 지정한다
value_vars 행으로 위치를 변경할 열의 이름을 지정한다
var_name value_vars로 위치를 변경한 열의 이름을 지정한다
value_name var_name으로 위치를 변경한 열의 데이터를 저장한 열의 이름을 지정한다

여러 열을 하나로 정리하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
weather_tidy = weather_melt.pivot_table(
index=['id', 'year', 'month', 'day'],
columns='element',
values='temp'
)
-----------------------------------
element tmax tmin
id year month day
MX17004 2010 1 d30 27.8 14.5
2 d11 29.7 13.4
d2 27.3 14.4
d23 29.9 10.7
d3 24.1 14.4
3 d10 34.5 16.8
...
  • pivot_table메서드는 행과 열의 위치를 다시 바꿔 정리해 준다
  • index인에는 위치를 그대로 유지할 열 이름을 지정하고, columns인자에는 피벗할 열 이름을 지정한다
  • values인자에는 새로운 열의 데이터가 될 열 이름을 지정한다
1
2
3
4
5
6
7
8
weather_tidy_flat = weather_tidy.reset_index()
------------------------------------------
element id year month day tmax tmin
0 MX17004 2010 1 d30 27.8 14.5
1 MX17004 2010 2 d11 29.7 13.4
2 MX17004 2010 2 d2 27.3 14.4
3 MX17004 2010 2 d23 29.9 10.7
4 MX17004 2010 2 d3 24.1 14.4
  • reset_index메서드로 새로 지정한 것이다

중복 데이터 처리하기

1
2
billboard_songs = billboard_long[['year', 'artist', 'track', 'time']]
billboard_songs = billboard_songs.drop_duplicates()
  • drop_duplicates()를 이용해서 데이터프레임의 중복 데이터를 제거한다