개미들을 위한 퀀트 자동 매매 프로그램 개발자 블로그입니다. 프로그래밍과 퀀트 투자를 합니다.

방구석퀀트

네이버카페 : 방구석 퀀트 놀러오세요^^ https://cafe.naver.com/conerquant 가입해 주세요.

2019년 5월 14일 화요일

python Pandas 조건에 따라 값 바꾸기 numpy where

아래와 같은 Pandas Dataframe이 있을 경우

[읍/면/동] 컬럼에서 그 값이 '410....' 과 같은 값은 '평균'으로 변경하고, 공백으로 되어 있는 값은 [구/읍/면/동] 컬럼의 값에 '평균'이라는 글자를 붙인 값으로 변경하고 싶다.

이 경우 numpy의 where라는 함수를 사용하면 된다.

사용 예는 아래와 같다.

a = numpy.where( 조건문, true일 경우 변경 값, false일 경우 변경 값 )

그럼 먼저 '4111...'로 되어 있는 cell 값을 '평균'이라는 이름으로 변경해보자
'4111...'의 문자열은 글자 수가 총 11개라는 규칙에 따라 아래와 같이 조건문을 설정 하고, 맞으면 '평균'이라는 글자를 대입하고, 아닐 경우 원래 값을 그대로 사용한다.


import numpy as np
division['읍/면/동'] = np.where(division['읍/면/동'].str.len()==11, '평균', division['읍/면/동'])

결과 화면:
다음으로 공백의 경우 변경하는 코드이다.

division['읍/면/동'] = np.where(division['읍/면/동'].str.len()==0,division['구/읍/면/동']+'평균',division['읍/면/동'])


결과 화면:

댓글 4개:

  1. 짤려서 안보이네요 코드가..

    답글삭제
    답글
    1. 화면을 가로로 눕혀서 보면 다 보일거에요...

      삭제
  2. 컴터로 보는데 코드좀 풀로 올려주세요.. 아니면 드래그라도 가능하게끔요. 넘 불편하네요..

    답글삭제
  3. 공부하고 싶은데 너무 불편하네요..
    드래그도 안되고 코드도 짤려있고..

    답글삭제

가장 많이 본 글