Pandas에서 오프셋 열을 만드는 방법(예제 포함)


Pandas에서 Shift() 함수를 사용하면 다른 열에서 이동된 값을 표시하는 열을 만들 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

 df[' lagged_col1 '] = df[' col1 ']. shift ( 1 )

Shift() 함수의 값은 이동을 계산할 값의 수를 나타냅니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas에서 오프셋 열 생성

연속 10일 동안 매장의 매출을 보여주는 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' sales ': [18, 10, 14, 13, 19, 24, 25, 29, 15, 18]})
#view DataFrame
print (df)

   day sales
0 1 18
1 2 10
2 3 14
3 4 13
4 5 19
5 6 24
6 7 25
7 8 29
8 9 15
9 10 18

Shift() 함수를 사용하여 각 행의 전날 매출을 표시하는 교대 열을 만들 수 있습니다.

 #add column that represents lag of sales column
df[' sales_previous_day '] = df[' sales ']. shift ( 1 )

#view updated DataFrame
print (df)

   day sales sales_previous_day
0 1 18 NaN
1 2 10 18.0
2 3 14 10.0
3 4 13 14.0
4 5 19 13.0
5 6 24 19.0
6 7 25 24.0
7 8 29 25.0
8 9 15 29.0
9 10 18 15.0

결과를 해석하는 방법은 다음과 같습니다.

  • 판매 열에 이전 값이 없으므로 지연 열의 첫 번째 값은 NaN 입니다.
  • 오프셋 열의 두 번째 값은 Sales 열의 이전 값이므로 18 입니다.
  • 오프셋 열의 세 번째 값은 Sales 열의 이전 값이므로 10 입니다.

등등.

원하는 경우 DataFrame에 여러 오프셋 열을 추가할 수도 있습니다.

 #add two lag columns
df[' sales_previous_day '] = df[' sales ']. shift ( 1 )
df[' sales_previous_day2 '] = df[' sales ']. shift ( 2 ) 

#view updated DataFrame
print (df)

   day sales sales_previous_day sales_previous_day2
0 1 18 NaN NaN
1 2 10 18.0 NaN
2 3 14 10.0 18.0
3 4 13 14.0 10.0
4 5 19 13.0 14.0
5 6 24 19.0 13.0
6 7 25 24.0 19.0
7 8 29 25.0 24.0
8 9 15 29.0 25.0
9 10 18 15.0 29.0

동일한 일반적인 접근 방식을 사용하여 원하는 만큼 오프셋 열을 추가할 수 있습니다.

참고 : 기본 열을 생성하려면 Shift() 함수에 음수 값을 사용하면 됩니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas에서 열을 삭제하는 방법
Pandas에서 열을 제외하는 방법
Pandas에서 선택한 열에 함수를 적용하는 방법
Pandas DataFrame에서 열 순서를 변경하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다