Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengeluarkan Tahun dan Bulan dengan Cekap daripada Lajur Datetime Pandas?

Bagaimana Mengeluarkan Tahun dan Bulan dengan Cekap daripada Lajur Datetime Pandas?

DDD
DDDasal
2024-12-14 20:02:11217semak imbas

How to Efficiently Extract Year and Month from a Pandas Datetime Column?

Mengekstrak Nilai Bulan dan Tahun daripada Lajur Masa Tarikh Panda

Apabila bekerja dengan data siri masa dalam Bingkai Data Pandas, selalunya perlu untuk mengekstrak khusus komponen daripada nilai datetime untuk tujuan analisis atau visualisasi. Dalam kes ini, kami menyasarkan untuk mengeluarkan hanya bulan dan tahun daripada lajur yang mengandungi objek pandas.tslib.Timestamp.

Beberapa kaedah telah cuba untuk mengekstrak nilai ini. Kaedah resample() dengan kekerapan 'M' gagal kerana ia memerlukan DatetimeIndex atau PeriodIndex. Pendekatan fungsi lambda gagal kerana ketiadaan atribut getitem untuk objek Timestamp.

Penyelesaian yang elegan ialah menetapkan indeks Bingkai Data kepada lajur ArrivalDate. Ini mengubah nilai datetime menjadi label indeks. Operasi pensampelan semula seterusnya boleh dilakukan menggunakan indeks:

df.index = df['ArrivalDate']

Walau bagaimanapun, untuk tujuan mengekstrak nilai tahun dan bulan yang berasingan ke dalam lajur baharu, pendekatan berbeza disyorkan:

df['year'] = pd.DatetimeIndex(df['ArrivalDate']).year
df['month'] = pd.DatetimeIndex(df['ArrivalDate']).month

Sebagai alternatif, aksesori dt boleh digunakan untuk ringkas sintaks:

df['year'] = df['ArrivalDate'].dt.year
df['month'] = df['ArrivalDate'].dt.month

Operasi ini mencipta lajur baharu bernama 'tahun' dan 'bulan' yang mengandungi nilai yang diekstrak. Ini membolehkan penggunaan fleksibel komponen ini untuk analisis dan manipulasi selanjutnya.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Tahun dan Bulan dengan Cekap daripada Lajur Datetime 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