[빅데이터분석기사] 판다스3 - 추가/변경, 정렬, 필터링, 결측치, 값 변경

2025. 6. 9. 13:17·Data/빅데이터분석기사
728x90
import pandas as pd
import numpy as np

1. 데이터 추가/변경

df['추가할 컬럼명'] = np.nan

# 전부 nan이 들어있는 '추가할 컬럼명'이 추가된다.

df['원산지'] = np.nan

 

0번째 인덱스의 아메리카노의 원산지는 '콜롬비아'이다.

df.loc[0, '원산지'] = '콜롬비아'
df.loc[2:3, '원산지'] = '과테말라'

 

리스트 형태로 데이터(행)를 추가할 때,

df.loc['인덱스'] = ['크리스마스 라떼', 6000, 300, '한국']

 

딕셔너리 형태로 데이터(행)을 추가할 때,

df.loc[7] = {'메뉴': '안녕커피', '가격': 10000, '칼로리': 200}

 

추가한 '인덱스'행 삭제하고 싶을 때,

df.drop('인덱스', axis=0)

2. 정렬

인덱스 기준으로 정렬하기

df.sort_index(ascending=True) # ascending True는 오름차순
df.sort_index(ascending=False) # ascending False는 내림차순

 

값을 기준으로 정렬하기 (값 중 '메뉴' 컬럼을 기준으로 정렬)

df.sort_values('메뉴', ascending=True) # 오름차순
df.sort_values('메뉴', ascending=False) # 내림차순

 

여러 개의 기준으로 정렬할 경우 리스트를 사용한다.

# 가격과 메뉴 기준 정렬
df = df.sort_values(['가격', '메뉴'], ascending=[False, True]) 
# 가격은 내림차순 메뉴는 오름차순

 

 

왼쪽의 이미지 index를 오른쪽 이미지 index 처럼 변경하고 싶을 때(즉, 인덱스를 새로 만들고 싶을 때)

df = df.reset_index(drop=True)
# drop=True 안해주면 새로운 컬럼이 생긴다.
함수를 적용한 데이터프레임을 저장하고 싶다면, 항상 변수에 저장해줘야 한다. 

 

3. 필터링

조건에 맞는 데이터만 출력하기 (변수에 넣어서 사용하는걸 추천)

# 1개 조건
cond = df['칼로리'] < 50
df[cond]

df[df['칼로리'] < 50]

 

cond = df['칼로리'] < 50 일 때, 칼로리가 50 이상인 데이터를 출력하고 싶다면 '~'를 붙인다.

cond = df['칼로리'] < 50
df[~cond]

 

조건이 2개 이상일 때 (and/or)

cond1 = df['칼로리'] > 50
cond2 = df['가격'] > 5000

df[cond1 & cond2]
df[cond1 | cond2]

 

문자열이 조건일 때

# 원산지가 콜롬비아인 데이터
cond = (df['원산지'] == '콜롬비아')
cond = df['원산지'] == '콜롬비아'
df[cond]

 

문자열과 숫자 조건(조건 여러개)

# 문자열과 숫자 조건 (AND/OR)
cond1 = df['원산지'] == '과태말라'
cond2 = df['가격'] <= 5000
df[cond1 & cond2]
df[cond1 | cond2]

 

isin은 DataFrame객체의 각 요소가 values 값과 일치하는지 여부를 bool 형식으로 반환

# 메뉴에 녹차를 포함하는 데이터 반환
df['메뉴'].isin(['녹차'])
# isin 활용
cond = df['메뉴'].isin(['녹차'])
df[cond]

 

isin을 복수컬럼에 활용

box = ['녹차', '카푸치노', '카페라떼']
cond = df['메뉴'].isin(box)
df[cond]

4. 결측치 처리

결측치 확인 (결측치 있을 시 True, 없을 시 False)

df.isnull()
df.isna()

컬럼별 결측치 확인(결측치가 있을 땐 True, 1 이고 결측치가 없을 땐 False 0 이기 때문에 sum만큼의 결측치가 있다는 것)

df.isnull().sum()
df.isna().sum()

 

결측값 채울땐 fillna 사용

df['원산지'] = df['원산지'].fillna('코스타리카')
df

5. 값 변경

문자 대치

df = df.replace('아메리카노', '룽고')
df = df.replace('녹차', '그린티')

 

문자대치(딕셔너리 사용)

change = {'아메리카노':'룽고', '녹차':'그린티'}
df = df.replace(change)

 

map 함수 사용(실무에서는 map을 더 많이 사용)

# map() 함수
import pandas as pd
df = pd.DataFrame({'만족도': ['만족', '보통' ,'불만', '보통', '만족']})

mapping = {'만족': 3, '보통': 2, '불만': 1}
df['만족도_숫자'] = df['만족도'].map(mapping)
df
  • 딕셔너리 형태로 만들어서 map함수 내에 딕셔너리 넣어서 값을 넣어준다.
728x90

'Data > 빅데이터분석기사' 카테고리의 다른 글

[빅데이터분석기사] 판다스6 - 시계열 데이터1  (0) 2025.06.11
[빅데이터분석기사] 판다스5 - 그룹핑, 병합, 피벗테이블  (1) 2025.06.10
[빅데이터분석기사] 판다스4 - 문자열, 내장함수  (1) 2025.06.10
[빅데이터분석기사] 판다스2 - 자료형, 컬럼, 삭제, 인덱싱/슬라이싱  (0) 2025.05.28
[빅데이터분석기사] 판다스1 - 데이터프레임, 시리즈, 저장, EDA  (0) 2025.05.26
'Data/빅데이터분석기사' 카테고리의 다른 글
  • [빅데이터분석기사] 판다스5 - 그룹핑, 병합, 피벗테이블
  • [빅데이터분석기사] 판다스4 - 문자열, 내장함수
  • [빅데이터분석기사] 판다스2 - 자료형, 컬럼, 삭제, 인덱싱/슬라이싱
  • [빅데이터분석기사] 판다스1 - 데이터프레임, 시리즈, 저장, EDA
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (443)
      • App·Android (1)
      • BE (50)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11)
        • 스프링부트 시큐리티 & JWT (0)
        • 실전 자바 기본, 중급 (1)
        • PHP (11)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (28)
        • AI (7)
        • Bigdata (6)
        • Database (1)
        • Python (0)
        • 빅데이터분석기사 (13)
      • Infra (1)
      • Activity (9)
        • Intern (0)
        • SK AI Dream Camp (2)
        • 구름톤 유니브 4기 (1)
        • 리모트 인턴십 6기 (3)
        • 봉사활동 (0)
        • 부스트캠프 AI Tech 8기 (3)
      • CS (8)
      • 취준 (12)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (2)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    투포인터
    티스토리챌린지
    그래프탐색
    수학
    문자열
    그리디알고리즘
    백준
    매개변수탐색
    다이나믹프로그래밍
    최단경로
    정렬
    너비우선탐색
    구현
    이분탐색
    오블완
    시뮬레이션
    그래프이론
    누적합
    브루트포스 알고리즘
    자료구조
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[빅데이터분석기사] 판다스3 - 추가/변경, 정렬, 필터링, 결측치, 값 변경
상단으로

티스토리툴바