본문 바로가기
데이터분석과 AI/빅데이터 분석기사

[빅데이터분석기사 실기][작업형1] Shift로 데이터 이동하기

by 우공80 2023. 6. 9.
728x90

shift로 데이터 이동하기

shift 함수는 pandas 라이브러리에서 제공되는 함수로, 데이터 프레임의 열을 특정 방향으로 이동시키는 기능을 수행합니다. 이 함수를 사용하면 열의 값들이 한 칸씩 앞이나 뒤로 이동하게 됩니다.

shift 함수는 다음과 같은 형식으로 사용됩니다:

df['이동된 열'] = df['기존 열'].shift(periods=n)

여기서 periods=n은 이동할 칸 수를 지정하는 매개변수입니다. n이 양수인 경우 열의 값을 뒤로 이동시키고, 음수인 경우 앞으로 이동시킵니다.

이동된 결과는 새로운 열로 추가되며, 이동되는 과정에서 가장 첫 번째 값은 결측치로 채워집니다.

아래 예시를 보겠습니다.

import pandas as pd

# Create a sample DataFrame
data = {'A': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# Shift the 'A' column forward and backward
df['A_shifted_forward'] = df['A'].shift(-1)
df['A_shifted_backward'] = df['A'].shift()

print(df)

Output: 한 칸씩 이동한 결과 결측치가 발생했습니다.

   A  A_shifted_forward  A_shifted_backward
0  1                2.0                 NaN
1  2                3.0                 1.0
2  3                4.0                 2.0
3  4                5.0                 3.0
4  5                NaN                 4.0

결측치를 채워줍니다. 결측치는 기존 열의 값으로 채워도 되고, method='ffill'이나 'bfill'로 채우는 것도 가능합니다.

# Fill missing values with the appropriate values
df['A_shifted_forward'].fillna(df['A'], inplace=True)
# df['A_shifted_forward'].fillna(method='ffill', inplace=True)  # 결측치는 다양하게 채울 수 있음.

df['A_shifted_backward'].fillna(df['A'], inplace=True)  
# df['A_shifted_backward'].fillna(method='bfill', inplace=True) # 결측치는 다양하게 채울 수 있음.

# Print the resulting DataFrame
print(df)

Output: 결측치가 잘 채워졌습니다.

   A  A_shifted_forward  A_shifted_backward
0  1                2.0                 1.0
1  2                3.0                 1.0
2  3                4.0                 2.0
3  4                5.0                 3.0
4  5                5.0                 4.0

 

shift함수를 시계열 데이터에서 shift함수를 이용해 변화를 분석하는 데 주로 사용이 됩니다. 

 

※ 위 내용은 "빅데이터 분석기사 실기 준비를 위한 캐글 놀이터"를 따라가며 공부한 내용입니다.

https://www.kaggle.com/datasets/agileteam/bigdatacertificationkr

 

Big Data Certification KR

빅데이터 분석기사 실기 (Python, R tutorial code)

www.kaggle.com

 

728x90

댓글