728x90
728x90
pandas.DataFrame.shift()
DataFrame.shift(periods=1, freq=None, axis=0, fill_value=NoDefault.no_default)
Parameters)
- periods : int (음수 or 양수)
움직일 기간 - freq : DateOffset, tseries.offsets, timedelta, or str, optional
데이터를 재정렬하지 않고(=원본 데이터 보존) 인덱스 값을 이동하는 데 사용되는 선택적 매개 변수 - axis : {0 or ‘index’, 1 or ‘columns’, None}, default None
shift 할 방향 (행/열) - fill_value : object, optional
결측값이 생기는 경우 대체할 값.
pandas의 shift()함수는 다음과 같을 때 사용한다.
1. 데이터프레임의 행을 위,아래로 옮기고 싶을때
2. 데이터의 변화량을 저장하는 컬럼을 만들고 싶을 때
예시
데이터 프레임이 다음과 같다고 하자.
1. shift 사용 예시
df.shift(n)을 사용했을 때, n의 수만큼 행이 아래로 내려가는 것을 확인할 수 있다.
음수 넣으면 , 반대로 행이 위로 올라가는 것을 확인할 수 있다.
2. 결측값 처리
shift()를 사용하면 행이 밀리면서 NaN의 값들을 가지는 행이 발생하는 것을 볼 수 있는데,
fill_value 파라미터를 설정해주거나 fillna()함수를 함께 사용하면 이러한 결측값 변환이 가능하다.
3. 데이터 보존, 인덱스만 이동
freq 파라미터값을 설정하면 ,
데이터 값들은 그대로 두고 인덱스만 shift가 가능하다.
4. 앞,뒤 행과의 변화량 -> 새로운 컬럼으로 얻어내는 방법
특정 컬럼에서 shift()를 사용하면 컬럼 내 행과 행의 값의 차이를 구할수 있다.
이를 활용해서 변화량을 가지는 컬럼을 새로 만들 수 있다.
위와 마찬가지로 fill_value를 설정하면 NaN 값 없이 구할 수 있다.
728x90
728x90
'ML & DL > 데이터 분석' 카테고리의 다른 글
[python] Pandas 기초 (0) | 2021.10.03 |
---|---|
[python] Numpy 기초 (0) | 2021.09.28 |
[python] 웹페이지 크롤링 기초 (0) | 2021.09.28 |
댓글