반응형
판다스 공식 사이트에서 제공하는 치트시트 이다. 혹시나 부족한 부분은 참고하면서 공부하였다.
1. 기본 세팅
import pandas as pd
2. 데이터 구조
# 시리즈
series_data = pd.Series([True, 3.14, 'ABC'])
print(type(series_data))
print(series_data)
# 데이터프레임
df = pd.DataFrame({'c0' : [1,2,3],
'c1' : [4,5,6],
'c2' : [7,8,9]})
print(df)
print(type(df))
3. 데이터 로딩
데이터 생성
dict_netflix = {
'show_id':[1, 2, 3, 4, 5, 6, 7, 8],
'type':['TV Show', 'TV Show', 'Movie', 'Movie', 'Movie', 'TV Show', 'Movie', 'Movie'],
'title':['Squid Game', 'Stranger Things', 'Sherlock Holmes', 'Iron Man & Captain America: Heroes United', 'Bird Box', 'Anne with an E', 'About Time', 'Inception'],
'director':[np.nan, np.nan, 'Guy Ritchie', 'Leo Riley', 'Susanne Bier', np.nan, 'Richard Curtis', 'Christopher Nolan'],
'cast':['Lee Jung-jae', 'Winona Ryder', 'Robert Downey Jr', 'Adrian Pasdar', 'Sandra Bullock','Amybeth McNulty', 'Domhnall Gleeson', 'Leonardo DiCaprio'],
'country':[np.nan, 'United States', 'United States, Germany', 'United States', 'United States', 'Canada', np.nan, 'United States'],
'release_year':[2021, 2019, 2009, 2014, 2018, 2019, 2013, 2010],
'duration':[300, 800, 128, 71, 124, 900, 123, 148],
'listed_in':[np.nan, 'TV Horror', 'Action & Adventure', np.nan, np.nan, np.nan, np.nan, np.nan]
}
netflix = pd.DataFrame(dict_netflix)
netflix
데이터 불러오기
netflix = pd.read_csv('./netflix_selena.csv')
netflix
데이터 저장
netflix.to_csv('netflix_new.csv', index=False)
4. 데이터 탐색
df.head(n) | 처음 n개 행 출력 (기본 5) |
df.tail(n) | 마지막 n개 행 출력 |
df.info() | 데이터 타입/메모리 정보 |
df.describe() | 수치형 데이터 통계 요약 |
df.shape | (행 수, 열 수) 튜플 |
df.columns | 열 이름 목록 |
5. 데이터 선택 / 필터링
(1) 열 선택
# 단일 열
title = netflix['title']
# 다중 열
title_releas_year = netflix[['title', 'release_year']]
(2) 행 선택
# 위치 기반 (iloc)
df.iloc[0] # 0번째 행
df.iloc[1:3] # 1~2번째 행
# 레이블 기반 (loc)
df.loc[0, 'country'] # 0번행의 'country' 값
(3) 조건 필터링
# 기본 필터
over_2015 = netflix[netflix['release_year'] > 2015]
under_2015 = netflix[~netflix['release_year'] > 2015]
# 복합 조건
over2015_tv = netflix[(netflix['release_year'] > 2015) & (netflix['type'] == 'TV Show')]
6. 데이터 조작
(1) 결측치 처리
df.isnull() # 결측치 확인
df.fillna(0) # 0으로 채우기
df.dropna() # 결측치 행 제거
(2) 열 추가/삭제
# 열 추가
netflix['2duration'] = netflix['duration'] * 2
# 열 삭제
netflix.drop('2duration', axis=1, inplace=True)
(3) 정렬
df.sort_values('release_year', ascending=False)
(4) 그룹화 & 집계
# 종류별, 나라별 집계
netflix.groupby(['type', 'country'])[['release_year', 'duration']].mean()
data = {
'store' : ['A', 'A', 'B', 'B', 'C', 'C', 'A', 'B', 'C', 'A'],
'month' : ['Jan', 'Feb', 'Jan', 'Feb', 'Jan', 'Feb', 'Mar', 'Mar', 'Mar', 'Apr'],
'sales' : [200, 220, 150, 180, 250, 270, 300, 310, 320, 330],
'profit' : [20, 25, 15, 20, 30, 35, 50, 45, 55, 60]
}
df = pd.DataFrame(data)
df
# 다중 집계
summary_stats = df.groupby('store').agg({
'sales' : ['sum', 'mean', 'max', 'min'],
'profit' : ['sum', 'mean', 'max', 'min']
})
7. 데이터 병합
# 세로 결합
pd.concat([df1, df2], axis=0)
# 가로 결합
pd.merge(df1,df2, on='새컬럼')
8. 유용한 기능 ( 조금 더 공부 후에 채워넣을 예정
(1) 함수 적용
(2) 피벗 테이블
반응형
'데이터 분석' 카테고리의 다른 글
<파이썬 데이터 분석가 되기 - 4주차> 데이터 시각화 라이브러리, 시본 (1) | 2025.02.09 |
---|---|
데이터 시각화, 갑자기 한글 폰트가 깨진다면? (1) | 2025.02.02 |
<파이썬 데이터 분석가 되기 - 3주차> 데이터 시각화 라이브러리, 맷플롯립 - 2 (2) | 2025.02.02 |
<파이썬 데이터 분석가 되기 - 3주차> 데이터 시각화 라이브러리, 맷플롯립 - 1 (0) | 2025.02.02 |
<파이썬 데이터 분석가 되기 - 1주차> 01장. 수치 계산 라이브러리, 넘파이 (2) | 2025.01.19 |