**해당 데이터는 제가 학원 강의를 수료하며 받은 데이터이며 원본 데이터는 기업으로부터 제공받은 데이터라서 공유할 수 없습니다.
**본문은 공부를 하며 과정을 이해하며 생각하기 위함이니 참고 해주시면 감사드리겠습니다.
## Environment : Anaconda-navigator
## Programming Language : Python 3
## Import Pandas
## Data provided by DS school & Origin data from Kmong.
## Kmong is a company that has a dream as below.
Kmong은 "비합리적인 서비스 시장을 정보기술로 혁신하여 새로운 일자리를 만들고 사람들이 행복하게 일하는 세상을 만든다."는 미션을 가지고 있는 프리랜서 마켓 플랫폼입니다.
Kmong팀은 디자인, 마케팅, IT&개발, 컨텐츠 제작, 통번역 등 다양한 서비스 카테고리를 기반으로 직업과 직장의 경계를 허물며 사람들이 스스로 경제 주체가 되어 행복하게 일하는 세상을 만들고 있습니다.
Target
- 데이터를 불러오기 및 전반적인 정보 확인
- 불러온 데이터들을 전처리
- 데이터들 목적에 맞게 병합
저번 글에 이어 데이터들 전처리를 진행하도록 하겠습니다.
raw_log_data의 'osversion' 컬럼을 보면 아래와 같은 결과가 나옵니다.
raw_log_data['osversion'].head()
'osversion' 컬럼 내역을 보면 모바일 OS 타입은 크게 iOS와 Android로 나눠지는걸 확인할 수 있습니다.
OS 타입과 버전을 따로 볼 수 있도록 2개 컬럼을 만들어보겠습니다.
raw_log_data['osversion'].unique()
먼저 OS 타입부터 구해보겠습니다.
def find_ostype(osversion): # find_ostype이라는 definition 지정
if "iOS" in osversion: # 만약 'iOS'라는 string이 osversion에 있으면
return "iOS" # 'iOS'라는 string만 출력한다
else: # 그게 아니라면
return "Android" # 'Android'라는 string만 출력한다
위 definition을 아래 첫줄 코딩을 통해 적용 후 새로 생성한 'ostype' 컬럼이 결과에 맞게 도출되었는지 확인.
raw_log_data['ostype'] = raw_log_data['osversion'].apply(find_ostype) # find_ostype 적용
print(raw_log_data['ostype'].unique()) # ostype의 값들 확인
raw_log_data['ostype'].head() # ostype의 상단 내용 확인
'ostype'은 잘 생성되었고 값들도 정리된걸 볼 수 있습니다. 다음으로 OS 버전만을 보기 위한 컬럼을 생성해보겠습니다.
아래를 보시면 replace를 사용해 iOS와 Android 라는 내용이 있을시 공백으로 변환하여 숫자만 남기는 작업을 진행 했습니다.
또한 가독성 증진과 코드가 계속 연결되고 있다는 명시를 위해 첫줄 마지막에 '\' 를 넣어 아래로 한줄 내려줬습니다.
raw_log_data['osversion(number)'] = raw_log_data['osversion']\
.str.replace("iOS", "").str.replace("Android", "")
print(raw_log_data['osversion(number)'].unique()) # 해당 컬럼의 값들 확인
raw_log_data['osversion(number)'].head() # 해당 컬럼의 상단 확인
Android와 iOS의 버전별로 몇명의 유저들이 있는지 확인해보겠습니다.
os_clean_data = (raw_log_data
.groupby(['ostype', 'osversion(number)']) # 여러 컬럼들 중 연관된 컬럼을 그룹화 합니다
.size() # 그룹별 속한 row 수를 반환합니다.
.rename("count_values") # 컬럼이름을 count_values로 변경합니다.
)
os_clean_data.to_frame() # to_frame()을 통해 series형식을 dataframe형식으로 보여줍니다.
Android만 따로 보겠습니다.
os_clean_data = os_clean_data.to_frame() # DataFrame으로 변경된 os_clean_data을 다시 덮어씁니다.
os_clean_data.T['Android'] # .T 는 현재 보고있는 DataFrame을 반전시키는 기능입니다.
iOS만 따로 보겠습니다.
os_clean_data.T['iOS'] # os_clean_data 를 반전시킨 후 iOS 버전만 봅니다.
마지막으로 초기에 보려했던 OS 타입과 버전을 따로 보기 위한 컬럼들이 잘 생성되었는지 확인해 보겠습니다.
raw_log_data[["osversion", "ostype", "osversion(number)"]].head()
다음 페이지에서는 본 환경을 이어서 동일한 데이터를 가지고 추가적인 전처리를 진행하도록 하겠습니다.
*** 본 페이지는 본인의 공부를 위해 작성되었으며, 협찬이나 문의를 받고 기재한 내용이 아닙니다. 혹시 문의사항이 있으시거나 문제가 될 경우 연락 주시기 바랍니다.***
'데이터 분석 > Python - 정리하자' 카테고리의 다른 글
퍼널(Funnel) 데이터를 정리 해보자 (2) | 2024.07.05 |
---|---|
불필요한 컬럼 정리 해보자 (0) | 2024.07.05 |
컬럼값 정리 후 결과 확인 해보기 (0) | 2024.07.05 |
전처리 중 컬럼 정리 및 시각화 해보기 (2) | 2024.07.05 |
데이터를 불러오기부터 전처리 해보기 (0) | 2024.07.04 |