Data Science

40 Examples to Master Pandas (1) : 1번~10번

하얀콩토리 2021. 1. 29. 01:58

참고 자료 : https://towardsdatascience.com/40-examples-to-master-pandas-c69d058f434e

 

40 Examples to Master Pandas

A comprehensive practical guide

towardsdatascience.com

위 자료를 참고해 만들었습니다.

 

참고로 사용한 데이터는 다음과 같습니다.

https://www.kaggle.com/yoghurtpatil/direct-marketing

https://www.kaggle.com/heeraldedhia/groceries-dataset

 

1. Reading csv files

- read_csv 함수 사용해 pandas DataFrame 만들기

import numpy as np
import pandas as pd

marketing = pd.read_csv("DirectMarketing.csv")
groceries = pd.read_csv("Groceries_dataset.csv")
marketing.head()

groceries.head()

 

2. Changing data type with astype

- 날짜 같은 경우는 pandas의 datetime 함수를 이용해야하기 때문에 datetime 형식으로 저장되어야함

groceries.dtypes

- Date의 타입이 object다
- 이를 datetime 형식으로 바꿔주자

groceries["Date"] = groceries["Date"].astype("datetime64")
groceries.dtypes

 

3. Changing the date type with to_datetime

- to_datetime 함수로 날짜에 적절한 타입으로 변환할 수 있음
- 다만 astype 함수랑 살짝 syntax가 다름

groceries["Date"] = pd.to_datetime(groceries["Date"])

 

4. Parsing dates

- read_csv로 파일 읽을 때 날짜를 date 형식으로 할당시킬 수 있음

groceries = pd.read_csv("Groceries_dataset.csv", parse_dates=["Date"])
groceries.dtypes

 

 

5. Filtering with the isin method

- dataframe의 특정 값만 필터링

groceries[groceries.Member_number.isin([3737, 2433, 3915, 2625])].shape

- 해당 조건을 가진 데이터 개수는 126개

 

6. Tlide operator

- 물결표(~)
- "not"을 의미

groceries[~groceries.Member_number.isin([3737, 2433, 3915, 2625])].shape

 

7. Value counts with normalization

- 각 값이나 리턴된 series의 개수를 셈
- 파라미터에 normalize를 넣으면 백분율을 볼 수 있음

marketing.Catalogs.value_counts(normalize=True)

- 가장 많이 차지하는 Catalogs는 28.2%를 차지한 12

 

8. Setting a column as index

- Pandas는 dataframe의 index로 integer를 디폴트로 할당함
- 이를 set_index 함수로 바꿀 수 있음
- groceries dataframe의 index를 Date 피처로 할당하는 예시

groceries.set_index("Date", inplace=True)
groceries.head()

 

9. Resetting the index

- 행이 통째로 삭제되면 Pandas는 자동적으로 index를 다시 할당해주지 않음
- 2개의 dataframe이 합쳐져도 index 다시 할당해주지 않음
- 이 경우 만들어진 새로운 dataframe은 index를 다시 순서대로 할당해주어야 함

groceries.drop(1, inplace=True)
groceries.head()

groceries.reset_index(drop=True, inplace=True)
groceries.head()

 

10. The unique values

- unique 함수로 각 열에서 유일한 값 찾기

groceries["itemDescription"].unique()[:5]

- 5개만 출력