def g(x):
    col = 'T'+str(x.t)
    data.at[x.seq-1, col] = x.temp
    return x.t

data['t'] = data.apply(g, axis=1)


당연히 data는 DataFrame구조이다.

(여기서 파라미터 x는 현재 axis=1로 줬으므로 로우별 칼럼들이다. x.t 의 뜻는 t 칼럼을 뜻한다. x.name은 네임 칼럼...)


위 코드를 보면 함수가 무슨 작업을 하든 return은 x.t로 해준다.

그리고 아래에서 data['t'] = 가 명시되어있다.


즉 apply 함수를 통해서 데이터 프레임에 변화를 얼마를 주든 간에 return과 칼럼 명시를 같게 해줘야한다.

안그러면 이상한 결과가 탄생한다.


만일 저렇게 하기 싫다고 한다면

def g(x):
    col = 'T'+str(x.t)
    data.at[x.seq-1, col] = x.temp
    return x

data = data.apply(g, axis=1)


이렇게 바꿔주면된다. 바뀐것은 바로 x.t , data['t'] 가 x, data로 바뀌었다는 것이다.


나는 저 두가지 경우를 섞어서 쓴 적이 있는데

그렇게 할 경우 잘 바뀌다가 제일 마지막에 디멘션 에러가 난다.


'초보 프로그래머' 카테고리의 다른 글

9월의 목표  (0) 2018.09.04
8월 한달 통계...  (0) 2018.09.01
SQL, 내가 원하는 값을 다른 테이블에 집어넣기  (0) 2018.08.26
5일차, 용어정리  (0) 2018.08.12
3일차 용어정리  (0) 2018.08.08

+ Recent posts