Python/Python For Analytics

[Python] numpy.where 를 이용하여 컬럼을 다양한 데이터 타입과 비교

Pydole 2020. 1. 21. 19:07

 

numpy.where(조건문, True 값, False 값)

 

 


 

Sample DataSet

 

import pandas as pd
import numpy as np

lst_A = {'제품':['milk','juice','bread','icecream'],
         '수량':[3,5,10,2],
         '제조일시':['2020-01-01 01:00:00','2019-12-20 15:01:00','2019-12-31 00:00:00','2020-01-02 02:03:01']}

df = pd.DataFrame(lst_A)

df['제조일시'] = pd.to_datetime(df['제조일시'])

 

 

 


 

 

1. '2020-01-01 00:00:00'를 기준으로 "유통기간" 새로운 컬럼을 만들고, True : "유효", False : "만료" 체크

    (날짜 비교)

 

from datetime import datetime

checkDate = datetime.strptime('2020-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')

df['유통기간'] = np.where(df['제조일시'] > checkDate, '유효', '만료')

print(df)

 


 

 

2. 수량 기준으로 5보다 적으면 "초과여부" 새로운 컬럼을 만들고, True : "적정", False : "초과" 체크

    (숫자 비교)

 

df['초과여부'] = np.where(df['수량'] < 5, '적정', '초과')

print(df)

 


 

 

3. 제품 기준으로 milk이나 juice 이면 "제품종류" 새로운 컬럼을 만들고, True : "음료", False : "먹거리" 체크

    (문자열 비교)

 

df['제품종류'] = np.where((df['제품'] == 'milk') | (df['제품'] == 'juice'), '음료', '먹거리')

print(df)

 

다중 컨티션 : &(AND),  |  (OR)