Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memilih Baris DataFrame Dengan Cekap Dalam Julat Tarikh Tertentu dalam Pandas?

Bagaimana untuk Memilih Baris DataFrame Dengan Cekap Dalam Julat Tarikh Tertentu dalam Pandas?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 08:36:16333semak imbas

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

Pilih Baris DataFrame Antara Dua Tarikh

Pengenalan

Apabila bekerja dengan data siri masa , selalunya perlu memilih baris tertentu berdasarkan julat tarikh. Artikel ini meneroka dua kaedah untuk mencapai ini dalam DataFrames panda.

Kaedah 1: Boolean Mask

  1. Pastikan lajur tarikh ialah Siri dengan dtype datetime64[ns]:

    df['date'] = pd.to_datetime(df['date'])
  2. Buat topeng boolean menggunakan operator perbandingan dengan tarikh mula dan tamat:

    mask = (df['date'] > start_date) & (df['date'] <= end_date)
  3. Pilih sub-DataFrame menggunakan topeng:

    df.loc[mask]
  4. Secara pilihan, tetapkan semula sub-DataFrame kepada df.

Kaedah 2: DatetimeIndex

  1. Tetapkan lajur tarikh sebagai indeks:

    df = df.set_index(['date'])
  2. Potong DataFrame menggunakan julat tarikh:

    df.loc[start_date:end_date]

Contoh

Pertimbangkan DataFrame dengan lajur tarikh. Kod berikut menggunakan kaedah topeng boolean untuk memilih baris antara '2000-06-01' dan '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]

Hasilnya termasuk baris dari 1 hingga 10 Jun, 2000.

Perbandingan

  • Kaedah topeng boolean lebih fleksibel dan membolehkan perbandingan tarikh yang lebih kompleks.
  • Kaedah DatetimeIndex lebih pantas untuk pilihan julat tarikh berulang.
  • Menggunakan parse_dates dalam pd.read_csv boleh menjimatkan keperluan untuk menukar lajur tarikh kepada datetime64s.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris DataFrame Dengan Cekap Dalam Julat Tarikh Tertentu dalam Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn