> 백엔드 개발 > 파이썬 튜토리얼 > Pandas의 특정 날짜 범위 내에서 DataFrame 행을 효율적으로 선택하는 방법은 무엇입니까?

Pandas의 특정 날짜 범위 내에서 DataFrame 행을 효율적으로 선택하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-14 08:36:16
원래의
327명이 탐색했습니다.

How to Efficiently Select DataFrame Rows Within a Specific Date Range in Pandas?

두 날짜 사이의 DataFrame 행 선택

소개

시계열 데이터 작업 시 , 날짜 범위를 기준으로 특정 행을 선택해야 하는 경우가 많습니다. 이 문서에서는 Pandas DataFrames에서 이를 달성하기 위한 두 가지 방법을 살펴봅니다.

방법 1: 부울 마스크

  1. 날짜 열이 dtype이 포함된 시리즈인지 확인하세요. datetime64[ns]:

    df['date'] = pd.to_datetime(df['date'])
    로그인 후 복사
  2. 시작 날짜와 종료 날짜가 포함된 비교 연산자를 사용하여 부울 마스크를 만듭니다.

    mask = (df['date'] > start_date) & (df['date'] <= end_date)
    로그인 후 복사
  3. 선택 하위 DataFrame을 사용하여 마스크:

    df.loc[mask]
    로그인 후 복사
  4. 선택적으로 하위 DataFrame을 df에 다시 할당합니다.

방법 2: DatetimeIndex

  1. 날짜 열을 색인:

    df = df.set_index(['date'])
    로그인 후 복사
  2. 날짜 범위를 사용하여 DataFrame 분할:

    df.loc[start_date:end_date]
    로그인 후 복사

날짜 열이 있는 DataFrame을 생각해 보세요. 다음 코드는 부울 마스크 방법을 사용하여 '2000-06-01'과 '2000-06-10' 사이의 행을 선택합니다.

import pandas as pd

df = pd.DataFrame({
    'date': pd.date_range('2000-1-1', periods=200, freq='D'),
    'value': np.random.rand(200)
})

mask = (df['date'] > '2000-06-01') & (df['date'] <= '2000-06-10')
result_df = df[mask]
로그인 후 복사

결과에는 6월 1일부터 10일까지의 행이 포함됩니다. 2000.

비교

  • 부울 마스크 방법이 더 유연하고 더 복잡한 날짜 비교가 가능합니다.
  • DatetimeIndex 방법이 더 빠릅니다. 반복되는 날짜 범위 선택의 경우.
  • parse_dates 사용 pd.read_csv를 사용하면 날짜 열을 datetime64s로 변환할 필요가 없습니다.

위 내용은 Pandas의 특정 날짜 범위 내에서 DataFrame 행을 효율적으로 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿