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 |