자신에게 친절할 것 :)
728x90
반응형

pandas 24

[데이터 전처리] 원하는 시간 간격으로 묶기 .resample()

# 코드잇 데이터 사이언티스트 강의 듣는 중- .resample() - 일자 별로 합계나 평균을 계산해서 보고 싶을 때 사용.- datetime이 인덱스로 설정되어 있어야 함.  - 일단, 인덱스로 설정하기  order_df = pd.read_csv('data/order.csv', parse_dates=['order_time', 'shipping_time'])order_df = order_df.dropna()#인덱스 설정order_df = order_df.set_index('order_time')order_df -->  order_ time이 인덱스가 됨.        - .resample()에 인자로 기준값을 넣어주면 됨. - 원하는 시간 간격 기준을 넣으면 됨 --> 'D' ; 하루, 'M' ; 월,..

Data Science/Pandas 2024.06.26

[데이터 전처리] 피벗 테이블 .pivot_table()

# 코드잇 데이터 사이언티스트 강의 듣는 중- .pivot_table() - groupby랑 유사하게 같은 그룹끼리 묶어서 값 비교 가능  - 피봇은 좀 더 깔끔하게 생긴 표 형태로 데이터를 요약 가능,- but, 인덱스나 칼럼에 들어가는 값들이 너무 많은 경우엔 그룹바이보다 가독성이 떨어짐. - 피봇보다 그룹바이의 계산 속도가 더 빠르기 때문에 데이터가 엄청 클 경우에는 그룹바이가 더 나음.--> 둘 중에 상황에 따라 쓰면 될 듯. - 넷플릭스 컨텐츠의 연도와 장르에 따른 점수의 평균을 보고자 할 때,- groupby는 행에 연도와 장르를 넣음. netflix_df.groupby(['year', 'genre'])['score'].mean()#값year genre 2019 Comedy..

카테고리 없음 2024.06.26

[데이터 전처리] 그룹 별로 분석하기 groupby(), category 타입, 멀티 인덱싱

# 코드잇 데이터 사이언티스트 강의 듣는 중  - .groupby() - 같은 그룹끼리 묶어서 값 비교 가능  - 넷플릭스에서 장르 별로 값을 비교 하고 싶을때netflix_df = pd.read_csv('data/netflix.csv')netflix_df --> 이런 데이터임       - 일단 결측치랑 간단한 통계 값 확인 #일단 결측치부터 확인 netflix_df.info()# 간단한 통계 값도 확인 netflix_df.describe() - 장르별로 구분되도록 나누기  --> 뒤에 계산식을 넣지 않으면 groupby가 적용되었다고만 나타남. netflix_df.groupby('genre')#값 - 장르별 값 확인 netflix_df.groupby('genre').count() #결측 값 제외 --..

Data Science/Pandas 2024.06.26

[데이터 전처리] 데이터 합치기) 같은 형식 concat() / 칼럼 기준 merge() / 인덱스 기준 join()

# 코드잇 데이터 사이언티스트 강의 듣는 중 - pd.concat() - 같은 변수를 합칠 때 import pandas as pdenglish_df1 = pd.DataFrame({ 'name': ['dongwook', 'taeho', 'jimin'], 'english_score': [50, 89, 68]})english_df2 = pd.DataFrame({ 'name': ['yoonseo', 'sowon', 'haeun'], 'english_score': [88, 91, 72]}) --> english_df1    --> english_df2 --> 2개의 형식이 같기에 그냥 합치는 게 나음 pd.concat([english_df1, english_df2]) --> 디폴트가 행으로 ..

Data Science/Pandas 2024.06.25

[데이터 전처리] 날짜와 시간 데이터 인덱싱하기/ 더하기 빼기, 불린 인덱싱

# 코드잇 데이터 사이언티스트 강의 듣는 중 - 불린 인덱싱을 하려면 datetime이 인덱스가 되어 있어야 함. - .set_index()#datetime으로 불러오기order_df = pd.read_csv('data/order.csv', parse_dates =['order_time', 'shipping_time'])#미리 불러왔으면, 데이터타입만 변경delivery_df['order_time'] = pd.to_datetime(delivery_df['order_time']#인덱스로 지정order_df.set_index('order_time')  -->보면 시간이 순서대로 정렬되어 있지 않음.        - 정렬시켜줌order_df = order_df.set_index('order_time').sor..

Data Science/Pandas 2024.06.24

[데이터 전처리] 날짜와 시간 데이터 타입 설정하기, datetime

# 코드잇 데이터 사이언티스트 강의 듣는 중 --> 데이터 프레임에 날짜와 시간이 들어가 있을 때, 데이터 타입을 확인해 보면 대체로 object임.  --> 그런데 이러면 원하는 대로 시간과 날짜를 인덱싱하기가 불편함.   order_df.dtypes     - pd.to_datetime()- 판다스에 메소드로 지정하고 해당하는 벡터를 ()안에 넣으면 됨. pd.to_datetime(order_df['order_time']) --> dtypes가 datetime으로 바뀜.       - but, 1개 값만 불러오면 타입이 달라짐. pd.to_datetime(order_df['order_time'])[0] --> timestamp가 나타남.  - datetime, timestamp 모두 어떤 시점에 날짜..

Data Science/Pandas 2024.06.24

[데이터 전처리] 데이터 구간화 cut() or apply(), 람다함수와 apply()

# 코드잇 데이터 사이언티스트 강의 듣는 중  - 연속적 숫자 데이터를 여러 구간으로 분류      - 우선 구획화하고 싶은 값의 최소/최대값을 확인patient_df['age'].describe() --> 최소 20, 최대 69--> 즉 20대부터 총 60대까지로 구성     - pd.cut()- pd의 메소드임. 파라미터로 여러가지 조건들을 계속 넣어줄 수 있음. - bins = --> 구간 설정 시 사용pd.cut(patient_df['age'], bins=[20, 30, 40, 50, 60, 70]) --> 옆에처럼 나눠주고 싶은 구간을 지정(연령대)해도 되고,그냥 숫자를 넣으면 (예, 3) 그 수만큼 알아서 나눠주기도 함.      patient_df['age_group'] = pd.cut(pa..

Data Science/Pandas 2024.06.21

[데이터 전처리] 대소문자 처리하기, 문자열 분리하기, 문자 제거하기

# 코드잇 데이터 사이언티스트 강의 듣는 중  - .unique() 로 값 상태 확인. airbnb_df['state'].unique() --> 보면 대소문자가 중구난방으로 섞여있는데, 컴퓨터는 다 다른 값으로 인식.   1) 소문자로 바꾸기 --> .str.lower()airbnb_df['state'].str.lower() --> 전부 소문자        2) 대문자로 바꾸기 --> .str.upper()airbnb_df['state'].str.upper() --> 대문자        3) 첫 알파벳만 대문자로 바꾸기 --> .str.capitalize()airbnb_df['state'].str.capitalize()           - .str.split() - 한 값에 있는 문자열을 ('') 안의..

Data Science/Pandas 2024.06.17

[데이터 전처리] 이상치outlier 찾기, 처리하기

# 코드잇 데이터 사이언티스트 강의 듣는 중   --> 데이터에서 동떨어진 값을 의미하는 데 주로 박스플롯 기준. Q1- 1.5 IQR ~ Q3 + 1.5 IQR 범위를 벗어나는 경우를 이상치라고 함.        1) .quantile() --> 사분위수 구하기 - 사분위수를 구해서 그것을 변수로 설정 q1 = airbnb_df['price'].quantile(0.25)q3 = airbnb_df['price'].quantile(0.75)iqr= q3 - q1lower_limit = q1 - 1.5 * iqrupper_limit = q3 + 1.5 * iqr 2) 조건식으로 사용함. #각각airbnb_df[airbnb_df['price'] upper_limit]#걍 합쳐서 한 번에 보이기airbnb_d..

Data Science/Pandas 2024.06.17

[데이터 전처리] 중복값 duplicate value 찾기, 처리하기

# 코드잇 데이터 사이언티스트 강의 듣는 중  1) .duplicated() airbnb_df.duplicated() #true 중복 값.    --> 결측 값 여부에 따라서 true or false // 있으면 True    - 이거로는 총 개수 확인이 어렵기 때문에 .sum()을 해줌airbnb_df.duplicated().sum()#2#중복을 인덱싱 한 값에서도 sum 확인 가능. 대신 인덱싱은 풀고 조건만 넣어야 함. #first와 last의 값은 같지만, False의 값은 예외도 추가되서 더 많아짐. airbnb_df.duplicated(subset='id').sum()#6 --> 이건 전체 값이 중복되는 지 여부가 디폴트임. - 인덱싱하면airbnb_df[airbnb_df.duplicated(..

Data Science/Pandas 2024.06.17
728x90
반응형