Data Manipulate
Data Manipulate
개요
- Data Manipulation이란?
- 데이터의 가독성을 높이고 조직적으로 만들기 위해 데이터를 변경하는 프로세스
- 데이터 분석을 용이하게 하기 위해 데이터 세트를 구조화 하는 프로세스
- 표준원칙 3가지
- Every column is a variable(모든 열은 변수)
- Every row is an observation(모든 행은 관찰값)
- Every cell is a single value(모든 셀은 단일값)
- Messy dataset에서 주로 발생하는 5가지 문제들
- Column headers are values, not variable names.(열의 header가 이름이 아닌 value값일 때)
- Multiple variables are stored in one column.(여러개의 변수가 하나의 열에 저장될 때)
- Variables are stored in both rows and columns(변수가 행과 열에 모두 저장될 때)
- Multiple types of observational units are stored in the same table(여러 유형의 타입이 한 개의 테이블에 존재할 때)
- A single observational unit is stored in multiple tables(단일 관측치가 여러 개의 테이블에 저장될 때)
방법
-
Pandas
-
Concat(Concatenate)
-
데이터를 물리적으로 붙이는 것
-
Concat시 ignore_index = True로하면 index가 순차대로 데이터가 떨어짐
-
Concat시 비어있는 데이터는 NaN처리됨
-
-
Merge
-
교집합을 찾아서 붙이는 것
-
Merge 조건 / Default는 INNER
- Outer과 Concat이 다른 부분은/ Merge는 중복된 부분은 다시 표현되지 않음
- on = ‘a’ 의 조건은 : on에 적혀있는 데이터는 생기고, 그 이후의 데이터들은 따로따로 데이터를 가지고 온다
-
-
Conditioning
- 원하는 조건에 맞는 데이터 추출시
&(and)
와|(or)
를 사용하여 여러개의 condition을 동시에 조절하여 사용
-
isin
-
숫자형(numerical) 값을 기준으로 사용하는 것이 아닌, 범주형(categorical)데이터를 기준으로 조건분류 할 때 사용
-
예시
-
df_subset[df_subset['테마'].isin(['주류'])]
-
df[(df['테마'] == '주류')]
-
-
-
Groupby
-
특정 조건 기준으로 데이터 값 분류할 때 사용
-
예시
df_subset.groupby('테마').mean()
-
-
-
Tidy Data
-
데이터 분류시 가독성이 좋은 Data를 Tidy Data라고 부름 / 반대되는 말은 Wide Data(=long-form)
-
좌측이 wide data / 우측이 Tidy Data
- ‘Make it tidy’라고 표현함
-
방법
-
melt() / .pivot_table()
-
Melt()사용 예시
- tidy 는 한 행에, 한 observation
- 누가(
id
), 어떤 feature 값을 가지는지(value
) Column을 지정해주면 됨 - 이를
melt
에 표현
-
-
출처 : https://cran.r-project.org/web/packages/tidyr/vignettes/tidy-data.html
댓글남기기