[빅데이터분석기사] 작업형1 모의문제3+4

2025. 6. 13. 17:39·Data/빅데이터분석기사
728x90
  1. index '2001' 데이터(행)에서 해당 행의 평균보다 큰 값의 개수를 A라 한다.
  2. index '2003' 데이터(행)에서 해당 행의 평균보다 작은 값의 개수를 B라 한다.
  3. A와 B를 더한 값을 구하여 답으로 제출하라.
# 데이터 생성(먼저 실행해 주세요)
import pandas as pd
import random
random.seed(2022)
df = pd.DataFrame()
for i in range(0, 5):
    list_box = []
    for k in range(0, 200):
        ran_num = random.randint(1,200)
        list_box.append(ran_num)
    df[i+2000] = list_box
df = df.T
df.to_csv("data.csv", index=True)
df = pd.read_csv("data.csv", index_col="Unnamed: 0")
# your code

df = df.T

#1
cond = df[2001] > df[2001].mean()
A = len(df[cond])

#2
cond = df[2003] < df[2003].mean()
B = len(df[cond])

#3
print(A+B)

 

행의 평균을 구하는 법(위처럼 전치행렬로 바꾼 다음 구해줘도 된다)

A = df.loc[2001].mean()
B = df.loc[2003].mean()

 

행의 평균보다 작은 데이터의 개수

cond = df.loc[2001].mean() > df.loc[2001]
sum(cond)

 

  1. 결측 값을 가진 데이터는 바로 뒤에 있는 값으로 대체한 후 (바로 뒤가 결측값이라면 뒤에 있는 데이터 중 가장 가까운 값)
  2. city와 f2 컬럼 기준으로 그룹합을 계산한 뒤
  3. views가 세번째로 큰 city(도시) 이름은?
#1
# df.isna().sum()
df = df.fillna(method="bfill")
# df.isna().sum()

#2
df = df.groupby(['city', 'f2']).sum().reset_index()
df = df.sort_values('views', ascending=False)

#3
df.iloc[2, 0]

 

결측값을 가진 데이터는 바로 뒤에 있는 값으로 대체(바로 뒤가 결측값이라면 뒤에 있는 데이터 중 가장 가까운 값)

df = df.fillna(method="bfill") # 결측값을 바로 뒤에 있는 데이터로 대체
df = df.fillna(method="ffill") # 결측값을 바로 앞에 있는 데이터로 대체

 

여러 개의 컬럼을 기준으로 그룹합 계산하는 법

df = df.groupby(['컬럼1', '컬럼2']).sum()

 

이미 그룹핑된 df를 정렬하는 방법

df = df.reset_index()
df = df.sort_values('컬럼명', ascending=False)

 

  1. 구독(subscribed) 월별로 데이터 갯수를 구한 뒤
  2. 가장 작은 구독 수가 있는 월을 구하시오
#1
df['subscribed'] = pd.to_datetime(df['subscribed'])
df['month'] = df['subscribed'].dt.month

df = df.groupby(['month']).count()

#2
df = df.sort_values('subscribed', ascending=True)
print(df.index[0])

 

월별로 데이터 갯수 구하기

  • 먼저, pd.to_datetime(df['컬럼명'])을 사용해서 datetime형식으로 바꿔준다.
  • 바꾼 컬럼을 df['컬럼명'].dt.month 로 월을 뽑아내 새로운 컬럼을 만든다.
  • groupby사용해서 월을 저장한 새로운 컬럼으로 그룹핑해준다.
df['subscribed'] = pd.to_datetime(df['subscribed'])
df['month'] = df['subscribed'].month

df = df.groupby(['month']).count()

 

행의 인덱스 값을 구하고 싶을 때

df.index(N)

 

  1. 앞에서 부터 50%까지의 데이터에서
  2. 'target'컬럼이 0 값을 가진 데이터만 활용해
  3. 'proline'컬럼의 평균을 구하시오 (소수점 절사(버림), 정수형 출력)
#1
cond = len(a) * 0.5
# print(cond)
a = a.loc[:cond,]
# print(a)

#2
cond = a['target'] == 0
a = a[cond]

#3
print(int(a['proline'].mean()))

 

  1. s1, s2, s3, s4, s5, s6, 컬럼의 행(row)별 합을 구하고 
  2. 그 합이 0.1보다 큰 값의 수를 구하시오

특정 컬럼의 행별 합을 구하는 법

  • 컬럼이 여러개일 경우 list에 넣어서 구하면 더 편하다.
  • 데이터프레임 = 데이터프레임[list명] 이렇게 하면 필요한 특정 컬럼만 뽑아낸 데이터프레임이 된다.
  • 행별 합은 데이터프레임.sum(axis=1)로 구한다.
#1+2
cols = ['s1', 's2', 's3', 's4', 's5', 's6']
a = a[cols]
print(sum(a.sum(axis=1) > 0.1))

 

  1. 고유한 값이 가장 많은 컬럼의 이름은?

고유한 값의 수를 구할 땐 nunique(), 고유한 값을 다 알고 싶을 땐 unique(), 데이터 값 별로 수를 알고 싶을 땐 value_counts()

a = a.nunique()
a = a.sort_values(ascending=False)
print(a.index[0])
728x90

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

[빅데이터분석기사] 작업형2 머신러닝 - 데이터 전처리(인코딩, 스케일링), 검증 데이터 분할  (0) 2025.06.15
[빅데이터분석기사] 작업형2 머신러닝 - 데이터 전처리(결측치, 이상치)  (0) 2025.06.15
[빅데이터분석기사] 작업형1 모의문제1+2  (0) 2025.06.13
[빅데이터분석기사] 판다스7-시계열데이터2  (0) 2025.06.12
[빅데이터분석기사] 판다스6 - 시계열 데이터1  (0) 2025.06.11
'Data/빅데이터분석기사' 카테고리의 다른 글
  • [빅데이터분석기사] 작업형2 머신러닝 - 데이터 전처리(인코딩, 스케일링), 검증 데이터 분할
  • [빅데이터분석기사] 작업형2 머신러닝 - 데이터 전처리(결측치, 이상치)
  • [빅데이터분석기사] 작업형1 모의문제1+2
  • [빅데이터분석기사] 판다스7-시계열데이터2
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
[빅데이터분석기사] 작업형1 모의문제3+4
상단으로

티스토리툴바