메타코드의 "파이썬 입문 데이터분석 프로젝트 만들기" 강의를 수강하면서 공부한 내용을 정리한 글입니다.
https://mcode.co.kr/video/list2?viewMode=view&idx=80
1. Index & Sort
- Index 란? 행을 구별하는 데 사용되는 고유한 식별자를 의미
# index
df.set_index("col1", inplace = True) #인덱스를 특정 컬럼으로 지정
df.reset_index(inplace = True) #기본 정수 인덱스
import seaborn as sns
df = sns.load_dataset("taxis") #seaborn의 taxis 데이터셋 로드
# 예를들어 taxis의 color라는 칼럼으로 index를 지정하고 싶다면
df.set_index("color", inplace = True) # 를 입력
# 다시 정수형 인덱스로 변경하고 싶다면
df.reset_index(inplace = True) # 를 입력
- Sort 란? 특정 기준에 따라 순서대로 나열하는 것을 의미
# Sort
# sort_value() : 특정 컬럼 기준
df.sort_values("col1", ascending = False, inplace = True)
# ascending = False / True = 내림차순 / 오름차순
# sort_index() : 인덱스 기준
df.sort_index(inplace = True)
2. Filtering
- pd.DataFrame에서 Filtering은 조건에 부합하는 row만 남기는 과정
### Filtering 예시
import pandas as pd
data = {
"name" : ["a", "b", "c"],
"age" : ["10", "20", "30"],
"city" : ["q", "w", "e"]
}
df = pd.DataFrame(data) # 예시 데이터 프레임 생성
con = df.age > 20 # 조건을 걸어주면 bool형태로 출력된다.
df["age_over20"] = con # 데이터프레임에 새로운 열을 추가
df[con] # 조건에 부합하는 열만 출력됨 -> df[df.age > 20]과 동일
### between(), isin(), isna() 예시
#from_n 이상 ~ to_n 이하
df["col"].between(from_n, to_n)
# 특정 열의 값이 주어진 목록에 포함되어 있는지 여부
df["col"].isin(["item1", "item2"])
# 특정 열의 값이 결측치일 경우 True 아닐 경우 False를 반환
df["col"].isna()
# 아까와 같이 seaborn 데이터셋인 titanic 로드
import seaborn as sns
df = sns.load_dataset("titanic")
## between()
con = df["age"].between(20, 22) # 20살이상 22살이하
df[con].age.value_counts() # 해당하는 값의 개수 출력 (다른 값이 들어갔는지 확인)
## isin()
con1 = df["embarked"].isin(["S", "C"])
df[con1].embarked.value_counts() # 해당하는 값의 개수 출력
## isna()
df.deck.value_counts(dropna = False) # dropna = False 를 입력해줘야 결측치도 같이 보여줌
con2 = df.deck.isna() # 결측치 bool 값으로 출력
df[con2] # deck의 값이 결측치 인것만 출력
df[~con2] # 결측치가 아닌 것만 출력
## and / or -> [and는 둘다 True여야 True] [or는 하나만 True 여도 True]
True and False # False
True or False # True
True & False # False
True | False # True
3. Date & Times
- 시간 관련 데이터를 python의 datetime 객체로 변환
# taxis.csv 파일 로드
import pandas as pd
df = pd.read_csv("taxis.csv")
#pickup과 dropoff 컬럼이 날짜형태의 데이터(object)
## to_datetime
df["pickup"] = pd.to_datetime(df.pickup) #dtype이 datetime64로 변경된다.
## to_period | 날짜/시간 데이터를 주어진 주기로 변환
df["col"].df.to_period("period").dt.strftime("%Y-%m-%d") # 예시
##parse_dates # datetime으로 적용할 칼럼을 미리 지정
read_csv( , parse_dates = ["col1", "col2", ...])
df = pd.read_csv("taxis.csv",
parse_dates = ["pickup", "dropoff"]
)
## timedelta | 두 날짜 또는 시간 사이의 차이를 나타내는 데 사용
df["duration"] = (df["end"] - df["start"]).dt.total_seconds() # 예시
(df.dropoff -df.pickup).dt.total_seconds()/60
강의가 끝나면 오늘도 역시 연습 문제를 통해 복습을 시켜주신다. 계속 강의를 보면서 느낀 점은 확실히 초보자 수준에 맞게 설명을 해주신다는 거다. 본인이 데이터분석 쪽으로 좀 쉬운 설명으로 듣고 싶으면 이 강의를 추천한다.
'데이터 공부 정리' 카테고리의 다른 글
[데이터분석 공부] 파이썬 입문 데이터분석 프로젝트 만들기 - 2. 데이터 전처리 3 (with 메타코드M) (0) | 2024.02.25 |
---|---|
[데이터분석 공부] 파이썬 입문 데이터분석 프로젝트 만들기 - 2. 데이터 전처리 1 (with 메타코드M) (0) | 2024.02.13 |
[데이터분석 공부] 파이썬 입문 데이터분석 프로젝트 만들기 - 1. 파이썬 기본 문법 (with 메타코드M) (0) | 2024.02.13 |
[빅데이터분석기사 필기] 메타코드M 빅데이터분석기사 필기 공부 3과목 -분석모형 설계 & 데이터분할 (0) | 2024.01.27 |
[빅데이터분석기사 필기] 메타코드M 빅데이터분석기사 필기 공부(Orientation) (0) | 2024.01.20 |