본문 바로가기
자격증/빅분기

[빅분기] 판다스 전처리 100제

by kime2 2024. 6. 18.

출처 https://www.datamanim.com/dataset/99_pandas/pandasMain.html#

 

판다스 연습 튜토리얼 — DataManim

Question 43 df의 데이터 중 new_price값이 lst에 해당하는 경우의 데이터 프레임을 구하고 그 갯수를 출력하라 lst =[1.69, 2.39, 3.39, 4.45, 9.25, 10.98, 11.75, 16.98]

www.datamanim.com

 

1.데이터를 로드하라. 데이터는 \t을 기준으로 구분되어있다.
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/pandas/main/lol.csv',sep='\t')

데이터 컬럼 구분 sep = ''
컬럼구분이 별로로 되어있을 경우 sep파라미터 사용


 2. 데이터를 로드하라. 컬럼이 한글이기에 적절한 처리해줘야함
dataurl = 'https://raw.githubusercontent.com/Datamanim/pandas/main/Jeju.csv'
df = pd.read_csv(dataurl, encoding = 'euc-kr')
 
한글이 추가된 데이터는 인코딩이 어렵기 때문에 encoding이라는 파라미터 사용
한글처리 encoding = 'euc-kr', 'utf-8' ,'cp949'

3.수치형 변수를 가진 컬럼을 출력하라
변수 타입에 따라 구별하기
ans = df.select_dtypes(exclude = object).columns
select_dtype()메서드를 사용하면 include, exclude에 따라 원하는 데이터 형태를 찾을 수 있음

4. 평균 속도 컬럼의 4분위 범위(IQR) 값을 구하여라
df['평균 속도'].quantile(0.75) - df['평균 속도'].quantile(0.25)

IQR은 상위 25%에서 상위 75%까지의 구간을 말하는데
이렇게 백분위로 구분하려면 quantile(백분위)를 사용한다

5. item_price 컬럼의 달러표시 문자를 제거하고 float 타입으로 저장하여 new_price 컬럼에 저장하라
df['new_price'] = df['item_price'].str.replace('$','').astype('float')
문자를 대체하기 위해서는 replace함수를 사용한다.
따라서 저게하기 위해서는 대체변수를 ''로 아무것도 사용하지 않는 것인데
문자사이에 있는 문자만 대체하기 위해서는 
str.replace가 필요하다
 
또한 데이터 타입을 바꾸고 싶은 경우는 astype()
 
6. df의 item_name 컬럼 값중 Chips 포함하는 경우의 데이터를 출력하라
df[df['item_name'].str.contains('Chips')]

문자중에 포함된 데이터를 찾고 싶은때는 str.contains()

7. df의 짝수번째 컬럼만을 포함하는 데이터프레임을 출력하라
df.iloc[:,::2]
df.iloc[:,시작:끝:스텝]
 
홀수번째를 찾기 위해서는 df.iloc[:,1::2]
 
8. df의 item_name 컬럼 값이 Steak Salad 또는 Bowl 인 데이터를 데이터 프레임화 한 후, item_name를 기준으로 중복행이 있으면 제거하되 첫번째 케이스만 남겨라
df[(df['item_name']=='Steak Salad')|(df['item_name']=='Bowl')].drop_duplicates('item_name')
~~ 조건 또는 ~~조건 > (조건)|(조건)
특정 컬럼에 중복값 제거 drop_duplicates(컬럼명)

배운 매서드 및 함수
read_csv(~, sep ='~', encoding = 'euc-kr')
select_dtypes(include/exclude='~')
quantile(0.25)
str.replace(q,w)
str.contains('~')
astype('int')
drop_duplicates('~')

 

73번
df['Yr_Mo_Dy'].dt.strtime('%Y-%m-%d %h:%m)
결과 오브젝 > 스트링 형식으로 타임을 지정해ㅅ라

'자격증 > 빅분기' 카테고리의 다른 글

[빅분기] 3유형  (0) 2024.06.21
[빅분기] 2유형  (0) 2024.06.20
[빅분기]유형1 기출  (0) 2024.06.19