[pandas] 재밌던 코딩 - 새로운 열을 만들어 조건에 따라 0 or 1 채우기

신두다·2022년 4월 10일
0

공부노트

목록 보기
6/12

지난 주 작성했던 python 코드 중 재밌었던 것을 기록해둔다.
저작권 때문에 간단히만..!


문제

  • A회사의 고객별 최근 구매이력이 담긴 데이터 프레임이 있다.
  • 누적 구매 금액이 $2,000 이상을 넘고, 오늘을 기준으로 가입기간이 5년 이상이 된다면 1, 아니면 0의 값을 가진 칼럼(='VIP')을 만들어라.

작성한 코드

# VIP (5년 = 1825 days)

result = []

for i in range(2240):
  if df['TotalMntProducts'][i] > 2000 and df['DaysSinceJoined'][i] > pd.Timedelta(1825, unit = 'd'):
    result.append(1)
  else:
    result.append(0)

#result dataframe으로 변경하기
result = pd.DataFrame(result, columns = ['VIP'])

#원래 df와 합치기
df = pd.concat([df, result], axis = 1 )
df[['VIP']].head() #확인

재밌다!


참고로 DaysSinceJoined (가입일과 오늘 날짜의 차이)는 아래와 같이 만들었다.

# DaysSinceJoined

# datatype 변경
df['Dt_Customer'] = pd.to_datetime(df['Dt_Customer'])

# 칼럼 생성
df['DaysSinceJoined'] = pd.Timestamp.today() - df['Dt_Customer']
df[['DaysSinceJoined']].head() #확인
profile
B2B SaaS 회사에서 Data Analyst로 일하고 있습니다.

0개의 댓글