Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menapis Baris DataFrame dengan Cekap mengikut Julat Tarikh?

Bagaimana untuk Menapis Baris DataFrame dengan Cekap mengikut Julat Tarikh?

Barbara Streisand
Lepaskan: 2024-12-12 16:30:11
asal
927 orang telah melayarinya

How to Efficiently Filter DataFrame Rows by Date Range?

Baris DataFrame Pertanyaan Dalam Julat Tarikh Ditentukan

Soalan ini menangani cabaran mengekstrak baris dalam julat tarikh tertentu daripada DataFrame yang mengandungi lajur tarikh. Penyelesaian yang disediakan menawarkan dua pendekatan untuk mencapai ini.

Kaedah 1: Menggunakan Boolean Mask

Untuk menggunakan kaedah ini, pastikan 'tarikh' dalam DataFrame anda mewakili Siri dengan dtype datetime64[ns]. Gunakan langkah berikut:

  1. Buat Topeng Boolean: Tentukan parameter tarikh_mula dan tarikh_akhir yang boleh menjadi datetime.datetimes, np.datetime64s, pd.Timestamps atau rentetan datetime. Bina topeng boolean yang dinilai sebagai Benar untuk baris yang memenuhi kriteria julat tarikh.
  2. Pilih Sub-DataFrame: Gunakan df.loc[mask] untuk mengekstrak baris yang melepasi keadaan topeng . Sebagai alternatif, untuk menulis ganti DataFrame sedia ada, gunakan topeng sebagai df = df.loc[mask].

Kaedah 2: Menetapkan DatetimeIndex

Optimal untuk senario yang melibatkan pemilihan tarikh yang kerap, pendekatan ini melibatkan penetapan lajur tarikh sebagai indeks:

  1. Tetapkan DatetimeIndex: Tukar lajur tarikh kepada DatetimeIndex menggunakan df.set_index(['date']).
  2. Pilih Baris mengikut Tarikh: Manfaatkan df.loc[start_date:end_date] untuk menapis baris berdasarkan julat tarikh. Ambil perhatian bahawa kedua-dua tarikh_mula dan tarikh_akhir adalah termasuk dalam pilihan ini.

Contoh:

Menggunakan kod yang diberikan dalam respons, pertimbangkan ilustrasi berikut:

import pandas as pd

df = pd.DataFrame({'date': pd.date_range('2023-03-01', periods=10)})
df['value'] = np.random.randn(10)

# Boolean Mask Approach
start_date = '2023-03-03'
end_date = '2023-03-08'
mask = (df['date'] > start_date) & (df['date'] <= end_date)
df_subset = df.loc[mask]

# DatetimeIndex Approach
df = df.set_index('date')
df_subset = df.loc[start_date:end_date]
Salin selepas log masuk

Ini akan menghasilkan dua DataFrames yang mengandungi baris yang sepadan dengan tarikh yang ditentukan julat.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Baris DataFrame dengan Cekap mengikut Julat Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan