Pandas’ta bir tarih saat sütunundan yıl ve ay çıkarmak yaygın bir işlemdir. Bu makale, ihtiyaçlarınıza en uygun yaklaşımı seçmenize yardımcı olmak için üç etkili yöntemi, güçlü ve zayıf yönlerini karşılaştırarak inceliyor.
İçerik Tablosu
.dt
Erişimcisini Kullanma
.dt
erişimcisi, tarih saat bileşenlerini çıkarmak için basit ve etkili bir yol sağlar. Okunabilirliği ve özlü olması nedeniyle genellikle tercih edilen yöntemdir.
import pandas as pd
data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
print(df)
Bu kod şu çıktıyı verecektir:
date year month
0 2024-03-15 2024 3
1 2023-11-20 2023 11
2 2024-05-10 2024 5
strftime()
Yöntemini Kullanma
strftime()
yöntemi, çıktı biçimini özelleştirmenize olanak tanıyarak daha fazla esneklik sunar. Bu, raporlama veya diğer amaçlar için yıl ve ayın belirli dize gösterimlerine ihtiyacınız olduğunda özellikle yararlıdır.
import pandas as pd
data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)
df['year'] = df['date'].dt.strftime('%Y')
df['month'] = df['date'].dt.strftime('%m') # Kısaltılmış ay adı için '%b', tam ad için '%B' kullanın
print(df)
Bu, şunu üretecektir:
date year month
0 2024-03-15 2024 03
1 2023-11-20 2023 11
2 2024-05-10 2024 05
Biçim kodlarının tam listesi için Python’ın strftime()
dokümanına bakmayı unutmayın.
DatetimeIndex
ile Doğrudan Erişim
‘date’ sütununuz zaten bir DatetimeIndex
ise, yıl ve ay özniteliklerine doğrudan erişebilirsiniz. Daha az yaygın olsa da, verileriniz zaten bu biçimdeyse verimli olabilir.
import pandas as pd
data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)
date_index = pd.DatetimeIndex(df['date'])
df['year'] = date_index.year
df['month'] = date_index.month
print(df)
Bu, ilk örnekle aynı çıktıyı üretir. Bununla birlikte, bu yöntem, zaten bir DatetimeIndex
nesnesi ile çalışmıyorsanız genellikle daha az tercih edilir.
Sonuç: .dt
erişimcisi, çoğu senaryo için en özlü ve etkili yaklaşımı sunar. strftime()
daha fazla biçimlendirme kontrolü sağlar, doğrudan DatetimeIndex
erişimi ise duruma göre kullanışlıdır. İhtiyaçlarınıza ve kodlama stilinize en uygun yöntemi seçin. Gerekirse pd.to_datetime()
kullanarak ‘date’ sütununuzun datetime türünde olduğundan emin olun.