[pandas] 데이터프레임 날짜 인덱스 늘리기(reindex)

2023. 3. 16. 21:31·데이터분석/데이터 전처리

* 공부한 것을 정리한 글이므로 틀린 내용이 있을 수 있습니다.

* 더 좋은 방법 또는 틀린부분이 발견될 시 계속 수정하며 업데이트 할 예정입니다.

 

다른 두 개의 시계열 데이터를 비교하려 할때 날짜의 시작 끝이 달라서 어떻게 맞춰줄 지 

많이 고민했었습니다.

 

기준 시계열의 경우 월데이터 2022년 1월~ 2023년 2월 데이터였고

비교할 시계열의 경우 월데이터 2022년 1월~ 2023년 1월까지 밖에 없던 상황입니다.

 

seaborn 모듈의 'flights'데이터셋을 사용하여 보겠습니다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

df = sns.load_dataset("flights")
df

 

 기준 데이터를 1950년 1월 ~ 1951년 2월, 다른 데이터를 1950년 1월~12월로 만들어 보겠습니다.

 

# 문자열 -> 숫자형
df['month'] = pd.factorize(df['month'])[0] +1

# 숫자 -> 문자열
df['year'] = df['year'].astype('str')
df['month'] = df['month'].astype('str')

# 문자열 -> datetime 형식 인덱스 생성 
df['date'] = df['year'] + '-' + df['month']
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')

df_a = df['passengers'].loc["1950-01":"1951-02"].to_frame()
df_b = df['passengers'].loc["1950-01":"1950-12"].to_frame()

다음 df_a, df_b의 결과입니다.

df_a
df_b

df_b의 날짜 인덱스를 1950년 8월까지 늘리고 싶을땐 reindex 함수를 사용하면 됩니다.

# 새로운 날짜 범위(1950년 1월~ 1950년 8월) 지정
new_date_range = df_a.index

# reindex 함수 사용하여 늘려주기
df_b.reindex(new_date_range)

7월 8월 인덱스가 잘 추가된 것을 볼 수 있습니다!

간단하지만 막상하려니 어떻게 할지 바로 떠오르지 않았네요ㅜ 전처리는 마스터하는날까지 포스팅을 해야겠습니다.

감사합니다!

'데이터분석 > 데이터 전처리' 카테고리의 다른 글

[pandas] 한달 전 월말 날짜 구하기  (0) 2023.03.17
[pandas] if 문으로 빈 데이터프레임 거르기  (0) 2023.03.16
[Pandas] 데이터 음수값 없애기  (0) 2023.03.14
[Pandas] 년,월,일 따로 있는 데이터 읽기 : parse_dates, date_parser, index_col  (0) 2023.01.08
'데이터분석/데이터 전처리' 카테고리의 다른 글
  • [pandas] 한달 전 월말 날짜 구하기
  • [pandas] if 문으로 빈 데이터프레임 거르기
  • [Pandas] 데이터 음수값 없애기
  • [Pandas] 년,월,일 따로 있는 데이터 읽기 : parse_dates, date_parser, index_col
데이터분석과 개발
데이터분석과 개발
데이터분석 뿐 아니라 데이터엔지니어링까지 다하고 싶은 데이터분석가입니다 :)
  • 데이터분석과 개발
    먼지뭉치 Data Analysis
    데이터분석과 개발
  • 전체
    오늘
    어제
    • 분류 전체보기 (42) N
      • 데이터분석 (23) N
        • 데이터분석 (4) N
        • 시계열분석 (6)
        • 데이터 전처리 (9)
        • 데이터시각화 (3)
        • 환경세팅 (1)
        • 논문 (0)
      • AI agent (0)
      • SQL (6)
      • 개발&분석 경험 (3)
      • 알고리즘 (3)
      • OS (1)
      • 수학 (4)
        • 선형대수 (2)
        • 확률&통계 (2)
      • 맛집 (2)
        • 이수&사당 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    플로틀리
    pandas
    크롤링자동화
    파이프라인전처리
    시간형식
    Python
    오제이튜브
    시계열분해
    pandas # 월말 날짜 # 마지막 주 # 날짜계산 # 시계열 # 마지막 주 금요일
    응용이 보이는 선형대수
    timeseries decomposition
    SQL
    데이터분석
    리눅스개념
    np.split
    짧은 시계열 # 금융시계열
    확률
    시계열모듈
    시간형식변환
    음수값 #전처리 #선형보간 #pandas #데이터 #데이터분석
    빈 데이터프레임 #pandas #데이터전처리
    이수역 양식집
    시계열
    시계열데이터셋
    stl
    loess
    adf_test
    seaborn # kdeplot # 데이터분석
    시계열 #reindex #인덱스 확장 #datetime index #index extention # 데이터전처리
    시계열시각화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데이터분석과 개발
[pandas] 데이터프레임 날짜 인덱스 늘리기(reindex)
상단으로

티스토리툴바