- Pandas 기초
- 데이터 로드와 기본 탐색
1. Pandas
:Python에서 데이터 분석과 조작을 쉽게 할 수 있도록 도와주는 강력한 오픈소스 라이브러리
주요특징
① 강력한 데이터 구조: Series(1차원 데이터 구조) , DataFrame(2차원 데이터 구조)
② 빠른 데이터 조직 및 변환 : 데이터 필터링, 정렬, 그룹화, 결합
③ 다양한 데이터 포맷 지원: CSV, Excel, JSON, SQL 등의 포맷을 쉽게 읽고 쓸 수 있음
④ 누락된 데이터 처리 지원: 결측값(NaN) 처리 기능 제공
⑤ 고성능 및 확장성: 대량의 데이터 빠르게 처리 가능, NumPy와 함께 사용해 고속 연산 가
⑥ 다른 라이브러리와의 호환성: Matplotlib, Seaborn 등과 결합하여 데이터 시각화 가능
1-1 Pandas 설치 & 사용법
pip install pandas
import pandas as pd # 일반적으로 'pd'라는 별칭으로 사용

1-2 Pandas 주요 데이터 구조
(1) Series (1차원 데이터 구조)
import pandas as pd
# Series 생성
click_rates = pd.Series([0.55, 0.10, 0.32, 0.28], index=["A", "B", "C", "D"])
print(click_rates)

(2) DataFrame (2차원 데이터 구조)
data = {
"캠페인": ["봄 세일", "여름 이벤트", "가을 특별전", "겨울 세일"],
"CTR" : [0.13, 0.18, 0.23, 0.07],
"CR" : [0.03, 0.05, 0.12, 0.02]
}
df = pd.DataFrame(data)
print(df)

위에 사진처럼 나타나지만 표로 깔끔하게 나타내주고 싶다면 google colab에서는 display를 사용하라!

1-3 Pandas 주요 기능
df = pd.read_csv("데이터 파일 이름.csv") # CSV 파일 불러오기
"데이터 파일 이름.csv"에 내가 불러올 파일의 이름을 적고 실행한다.

꼭 colab 왼쪽 맨 밑을 눌러 해당 csv를 넣어준 후에 불러오기 실행하기!
df = pd.read_csv("marketing_data.csv") # CSV 파일 불러오기

해당 파일이 잘 불러와졌다면 print()로 확인해보기 print했을 때 잘 출력됐다면 csv 파일 불러오기 성공!
1) 특정 행(row) 조회
# 인덱스를 이용한 행 조회
df.loc[3] # 3번째 행 조회 (라벨 기반 인덱스)
df.iloc[3] # 3번째 행 조회 (정수 인덱스 기반)
2) 특정 열(column)조회
df["매출액(만원)"] # 특정 열 조회
df[["매출액(만원)", "광고비(만원)"]] # 여러 열 조회
3) 특정 행과 특정 열 조회
df.loc[3, "매출액(만원)"] # 3번째 행의 "매출액(만원)" 값
df.iloc[3, 2] # 3번째 행, 2번째 열 값 (정수 인덱스 기준)
- df.loc[행번호, "열이름"] → 특정 행과 특정 열 값 조회
- df.iloc[행번호, 열번호] → 정수 인덱스로 특정 행, 특정 열 값 조회
4) 여러 개의 특정 행과 열 조회
df.loc[[1, 3, 5], ["매출액(만원)", "광고비(만원)"]] # 1, 3, 5번째 행의 특정 열들 조회
df.iloc[[1, 3, 5], [2, 3]] # 1, 3, 5번째 행의 2, 3번째 열 조회
5) 조건을 이용한 데이터 조회
df[df["매출액(만원)"] > 3000] # 매출액 3000만원 초과 데이터 조회
df[(df["광고비(만원)"] > 200) & (df["구매전환율(%)"] > 5)] # 광고비 200만원 이상 & 구매전환율 5% 초과 데이터 조회
▶ df[df["매출액(만원)"] > 3000 특정 조건을 만족하는 행 필터링
df[(조건1) & (조건2)] 여러 조건을 함께 적용 가능
데이터 필터링
# 필터링 조건 설정
filtered_df = df[
(df["광고비(만원)"] >= 200) & # 광고비가 200만원 이상
(df["구매전환율(%)"] >= 5) & # 구매전환율이 5% 이상
(df["매출액(만원)"] >= 3000) & # 매출액이 3000만원 이상
]
# 결과 출력
print(filtered_df)
위의 보기에선 &(and)로 3개의 조건을 다 만족시키는 것만 필터링 되어 출력됨
|(or)을 사용하면 광고비 200만원 이상 or 구매전환율이 5% 이상 or 매출액 3000만원 이상이거나 3 조건 중 하나만 만족해도 출력!
2. Pandas 데이터 로드 및 기본 탐색
| 파일 형식 | 메서드 |
| CSV | pd.read_csv() |
| Excel(xlsx) | pd.read_excel() |
| JSON | pd.read_json() |
| SQL데이터베이스 | pd.read_sql() |
2-1 CSV & Excel 파일 로드
import pandas as pd
# CSV 파일 불러오기
df = pd.read_csv("파일명.csv")
# 데이터 확인
print(df.head()) # 상위 5개 행 출력
#excel 파일로드
df = pd.read_excel("파일명.xlsx", sheet_name="Sheet1")
print(df.head())
2-2 데이터 기본 탐색
# 데이터 크기 확인
print(df.shpae) # (행 개수, 열 개수)를 반환
# 컬럼명 확인
print(df.coumns) # 데이터프레임의 모든 열 이름 확인
# 데이터 정보 출력
print(df.info()) # 데이터 타입, 컬럼별 결측값 개수 등이 확인 가능
# 데이터 타입 확인
print(df.dtypes) # 각 칼럼의 데이터 타입 확인
# 데이터의 상위 및 하위 행 조회
print(df.head()) # 상위 5개 행 출력
print(df.tail()) # 하위 5개 행 출력

기초 통계 요약
print(df.describe())

위처럼 나타나는데 이를 통해 count(갯수), mean(평균), std(표준 편차), min(최솟값), max(최댓값), 25%/50%/75%(사분위수)를 알 수 있음
특정 열의 고유 값 확인
# 특정 열에 어떤 값들이 있는지 확인
print(df["특정 열"].unique())
# 특정 열의 각 값이 몇 번 등장하는지 확인
print(df["특정 열"].value_counts())

결측값 확인
print(df.isnull().sum())
→ 데이터프레임 내 결측값 개수를 확인, 많을 경우 대체 or 삭제 작업 필요

결측값이 0으로 나와야 하는데 10이라는 건 광고비, 공유수, 구독자수에 결측값 10개 있음
결측값 제거는 빈 데이터를 평균, 0으로 채우기, 중앙값이 있다.
df_missing["광고비(만원)"] = df_missing["광고비(만원)"].fillna(df_missing["광고비(만원)"].mean()) # 평균
df_missing["SNS 공유수"] = df_missing["SNS 공유수"].fillna(0) # 0으로 채움
df_missing["이메일 구독자수"] = df_missing["이메일 구독자수"].fillna(df_missing["이메일 구독자수"].median()) # 중앙값
# [멋사 그로스마케팅 부트캠프 DAY4] 후기 & 회고
9시에 국취지 상담이 있어 2교시 부터 급하게 참여해 초반 내용을 혼자 따라간다고 애를 먹었다.. csv 파일, excel 파일 업로드 하는 부분에서 어려움을 겪었지만 도와주는 강사님 & 보조강사님 덕에 잘 이겨냈다. 혹여나 이 글을 보고 모르는게 있다면 언제든 물어봐주세용// (근데 제가 더 모를거라서 하하~) 판다스의 기초지만 헷갈리는 개념이 많아 복습을 계속하고 코딩도 계속 해봐야할거 같다.
예제 문제를 볼때 아 이거 뭘 써야할거 같은데 코드가 기억이 나지 않네 하는 경우도 있고, 어쩔땐 어떻게 하지 싶은 것도 있어 걱정이 많다. (저만 그런거 아니죠,,?) 우리 함께 성장해가요 같이 ..꼭 이 블로그를 쓰는 이유도 최대한 설명하듯이 쓰며 오늘 배운 내용을 복습하면서 아 이랬구나 하기 위해 열심히 쓰곤 있는데 내 머릿속에 들어왔다가 다시 나가는지 몰겠넹.. 그래도 확실한건 연습 문제를 풀때 쾌감은 미쳤다. 문제를 열심히 고민해 답을 도출했을 때의 쾌감.. 이 맛에 하는 거겠죠?(물론 오류뜨면 분노로 변하지만^,^) 남은 기간들도 화이팅 모두 힘내봐요 ♡
'멋쟁이사자처럼 그로스마케팅 부트캠프 2기 회고' 카테고리의 다른 글
| [멋쟁이사자처럼 부트캠프 그로스마케팅 2기] DAY7 GCP 계정 및 VM 설정 및 MariaDB 설치 (6) | 2025.05.13 |
|---|---|
| [멋쟁이사자처럼 부트캠프 그로스마케팅 2기] DAY6 Pandas 데이터 정렬 및 필터링, 데이터 그룹화 및 집계 (0) | 2025.05.12 |
| [멋쟁이사자처럼 부트캠프 그로스마케팅 2기] DAY5_ 복습(DAY1~4) & test (4) | 2025.05.09 |
| [멋쟁이사자처럼 부트캠프 그로스마케팅 2기] DAY3_ Python 데이터 구조, 함수와 클래스, 모듈 (0) | 2025.05.07 |
| [멋쟁이사자처럼 부트캠프 그로스마케팅 2기] DAY2_파이썬 (4) | 2025.05.02 |