[TIL] 데이터 시각화 & 세션 3회차 & 개인과제

Jeong Min·2025년 6월 11일
0

Matplotlib = 데이터를 시각화하기 위한 파이썬의 라이브러리

df.plot(x='컬럼a', y='컬럼b')
▶ x축과 y축을 각각 지정한 컬럼 a와 b를 토대로 그래프 제작

그래프 스타일 설정
df.plot(x='컬럼a', y='컬럼b', color='red', linestyle='--', marker='o', label='DATA')

  • color = 선의 색상
  • linestyle = 선의 스타일 (실선, 점선 등)
  • marker = 점
  • label = 범례 설정

축 제목 입력
ax = df.plot(x='컬럼a', y='컬럼b)
ax.legend(['DATA'])
ax.set_xlabel('x-axis') ▶ x축 이름 설정
ax.set_ylabel('y-axis') ▶ y축 이름 설정
ax.set_title('title') ▶ 그래프 전체 제목 설정
ax.text(x축,y축, 'Text', fontsize=10) ▶ x축과 y축으로 지정한 곳에 텍스트 설정

그래프 사이즈 변경
plt.figure(figsize=(가로,세로)) ▶ 사이즈에 따라


3회차 세션

데이터 타입 변환 및 날짜 처리

  • 데이터 타입 변환
    1. astype()으로 문자열을 정수로 변환
    EX)
    clean_numbers_int = clean_numbers.astype(int)
    print("\nastype()으로 변환한 결과:")
    print(clean_numbers_int)
    print(f"타입: {clean_numbers_int.dtype}")

2. pd.to_numeric() 활용 (N/A 같은 변환 불가능한 값을 자동으로 NaN으로 바꿔줌)
N/A : 알 수 없음. NULL과 같다.
NaN : 숫자여야 하지만 값이 없음. 결측치
EX)
df['age_clean'] = pd.to_numeric(df['age'], errors='coerce')
print("pd.to_numeric() 변환 결과:")
print(df[['age', 'age_clean']])

3. 콤마가 포함된 숫자 처리
EX)
df['income_clean'] = df['income'].str.replace(',', '').astype(float)
print("\n수입 변환 결과:")
print(df[['income', 'income_clean']])

  • .str.replace()로 모든 콤마를 빈 문자열로 변경해 줌.

4. map() 활용
EX)
df['is_premium_bool'] = df['is_premium'].map({'Yes': True, 'No': False})
print("불리언 변환 결과:")
print(df[['is_premium', 'is_premium_bool']])

df['is_premium'].unique()로 기존 값을 알 수 있음.

- 날짜 처리
1. to_datetime() 활용
EX)
orders_df['delivery_date_clean'] = pd.to_datetime(orders_df['delivery_date'])
print("배송 날짜 변환:")
print(orders_df[['delivery_date', 'delivery_date_clean']].head(3))

  • 대부분의 날짜 형식을 자동으로 인식

2. 날짜 간 계산

  • 배송 소요 시간 계산 (일 단위)
    EX)
    orders_df['delivery_days'] = (orders_df['delivery_date_clean'] - orders_df['order_date_clean']).dt.days
    print("배송 소요 시간:")
    print(orders_df[['order_id', 'order_date_clean', 'delivery_date_clean', 'delivery_days']])

  • dt.days 속성을 활용하면 날짜 차이를 일 단위로 계산 가능

  • dt.year = 년도 / dt.month = 월 / dt.day_name() = 요일


**개인과제 문제 풀이

**문제 1-1 : 데이터 전처리 (1번째 세션)

요구 사항
CSV 파일 읽기 및 데이터 기본 확인

  1. CSV 파일을 읽어 DataFrame(df) 을 생성합니다.
    ▶ CSV 파일 내 드라이브에 넣은 후 불러오기
    ▶ df = pd.read_csv('파일 경로')
    = df = pd.read_csv('/marketing_campaign_data.csv')

  2. 데이터셋 미리보기 : df의 상위 5개 행을 출력하세요.
    ▶ 파이썬에서 상위 행을 보려면 .head(n) 활용. n에 몇 개까지 출력할지 작성
    = df.head(5)
    ! 하위부터 보려면 .tail()

  3. 데이터 정보 : 컬럼명, 데이터 타입, 결측치 등 기본 정보를 출력하세요.
    ▶ 데이터 정보 = information. .info() 활용
    = df.info()

  4. 기술 통계 : 평균, 표준편차, 최소/최대값 등 기술 통계를 출력하세요.
    ▶ 평균, 표준 편차 등의 통계를 보려면 .describe() 활용
    = df.describe()

  5. 결측값 개수 : 각 열별로 결측값이 몇 개인지 출력하세요.
    ▶ 결측값 = null.
    = df.isnull() + 개수를 세는 함수 .sum()

  6. 중복 행이 몇 개인지 출력하세요
    ▶ 중복 확인하는 함수 .duplicated()
    = df.duplicated().sum()

0개의 댓글