이론 문제


문제내용

다음 중 틀린 선지를 올바르게 고치시오.

  1. 컬럼의 unique 함수를 통해 컬럼에 중복 없이 모든 값을 출력할 수 있다. (O)
  2. duplicated 함수로 데이터를 출력할 경우 dtype은 **float 형태**이다. (X) → duplicated 함수로 데이터를 출력할 경우 dtype은 bool 형태이다.
  3. apply 함수에서 키워드 파라미터 추가를 통해 원하는 만큼 함수에 데이터를 전달 가능하다. (O)
  4. map 함수에 파라미터로 딕셔너리를 전달하면 기존의 컬럼 값은 딕셔너리의 key로 사용되고, 해당되는 value의 값으로 컬럼 값이 변경된다. (O) → 참고: 수학의 합성함와 비슷한 개념
  5. fillna 함수를 통해 Null 값을 변경할 수 있다. (O)
  6. fillna 함수를 사용할 때 특정 열 값을 사용할 수 있다. (O) → 참고: df.loc[df['A'] != df['A'], 'A'] = 0
  7. concat에서 axis를 따로 지정하지 않는 경우 두 번째 데이터프레임을 새로운 컬럼(열)로 합친다. (X) → concat에서 axis를 따로 지정하지 않는 경우 두 번째 데이터프레임을 아래 행으로 연결한다.
  8. drop_duplicates 함수로 중복된 데이터를 삭제할 경우 삭제한 자리엔 None 값이 들어간다. (X) → drop_duplicates 함수로 중복된 데이터를 삭제할 경우 삭제한 자리엔 None 값이 들어간다.
  9. 데이터 프레임을 합칠 경우 index가 변경된다. (O)
  10. drop_duplicates 함수의 keep의 기본 값은 ‘last’이다. (X) → drop_duplicates 함수의 keep의 기본 값은 ‘first’이다.

실습 문제


import pandas as pd

df_1 = pd.read_csv('oct_3rd_data.csv')
df_2 = pd.read_csv('oct_4th_data.csv')

# 1
df_1.fillna(0, inplace=True)
df_2.fillna(0, inplace=True)

# 2
df_s = pd.concat([df_1, df_2], ignore_index=True)
df_s = df_s.sort_values(by = 'date', ascending = True, ignore_index = True)

# 3
df_s['event_target'] = None

# 4
o_3_mean = df_1[['refilled_cash', 'used_cash']].mean()
o_4_mean = df_2[['refilled_cash', 'used_cash']].mean()
df_new = pd.concat([o_3_mean, o_4_mean], ignore_index = True, axis = 1)
df_new.columns = ['refilled_cash_m', 'used_cash_m']
df_new.index = ['oct_3rd', 'oct_4th']

# 5
def calc(x):
    m = df_new.used_cash_m.min()
    if x > m: return 'YES'
    else: return 'NO'
df_s['event_target'] = df_s['used_cash'].apply(calc)

print(df_s)