2017-01-22 5 views
0

년을 4 분기로 변환하고 싶습니다. 예 : 2000q1, 2000q2, 2000q3, 2000q4.리 샘플을 사용할 때 열 이름 바꾸기

나는 아래의 코드

mdf = mdf.resample('Q',axis=1).mean().rename(
    columns=lambda x: '{:}q{:}'.format(x.year, [1,2,3,4][x.quarter >1])) 

하지만 무엇입니까 출력이 2000q1, 2000q2, 2000q2, 2000q2 인을 사용하고 있습니다.

어디에서 잘못 될지 제안하십시오.

답변

1

[1,2,3,4][x.quarter > 1]x.quarter가 1 이하이면 x.quarter 1보다 크거나 [1, 2, 3, 4][False] (즉 [1, 2, 3, 4][0]) (즉 [1, 2, 3, 4][1]) 경우 [1, 2, 3, 4][True]로 변환한다. 결과적으로이 값은 1보다 큰 분기의 경우 2를, 분기 1의 경우 1을 반환합니다.

'{}q{}'.format(x.year, x.quarter) 

은 인덱싱없이 정상적으로 작동합니다. 이름 바꾸기 부분은 this answer을 참조하십시오.

+0

그 작업. 감사 – Dumb