멋쟁이사자처럼 그로스마케팅 부트캠프 2기 회고

[멋쟁이사자처럼 부트캠프 그로스마케팅 2기] DAY4_ Pandas 기초, 데이터 로드와 기본 탐색

kknag-it 2025. 5. 8. 20:55
  • 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'라는 별칭으로 사용

 

코랩에서 Pandas 설치시 밑에 문구가 뜨고 설치 완료!

 

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를 사용하라!

display(df)로 출력하니 훨씬 깔끔하죠?!

 

 

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 파일 업로드 하는 부분에서 어려움을 겪었지만 도와주는 강사님 & 보조강사님 덕에 잘 이겨냈다. 혹여나 이 글을 보고 모르는게 있다면 언제든 물어봐주세용// (근데 제가 더 모를거라서 하하~) 판다스의 기초지만 헷갈리는 개념이 많아 복습을 계속하고 코딩도 계속 해봐야할거 같다.

예제 문제를 볼때 아 이거 뭘 써야할거 같은데 코드가 기억이 나지 않네 하는 경우도 있고, 어쩔땐 어떻게 하지 싶은 것도 있어 걱정이 많다. (저만 그런거 아니죠,,?) 우리 함께 성장해가요 같이 ..꼭 이 블로그를 쓰는 이유도 최대한 설명하듯이 쓰며 오늘 배운 내용을 복습하면서 아 이랬구나 하기 위해 열심히 쓰곤 있는데 내 머릿속에 들어왔다가 다시 나가는지 몰겠넹..  그래도 확실한건 연습 문제를 풀때 쾌감은 미쳤다. 문제를 열심히 고민해 답을 도출했을 때의 쾌감.. 이 맛에 하는 거겠죠?(물론 오류뜨면 분노로 변하지만^,^) 남은 기간들도 화이팅 모두 힘내봐요 ♡