Pandas.to_datetime'da format nasıl belirtilir?
Bir dize sütununu pandas DataFrame’deki tarih saat sütununa dönüştürmek için pandas.to_datetime() işlevini kullanabilirsiniz.
Bu işlevi kullanırken, tarihinizi dizeden tarihsaat biçimine dönüştürürken hataları önlemek amacıyla, tarihinizin içinde bulunduğu biçimi belirtmek için biçim bağımsız değişkenini kullanabilirsiniz.
Bu işlev aşağıdaki temel sözdizimini kullanır:
df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])
Biçim bağımsız değişkenine sağlayabileceğiniz en yaygın yönergeler şunlardır:
- %m : Sıfırlı bir sayı olarak ay (01, 02, … 12)
- %d : Ayın sıfırlı bir sayı olarak günü (01, 02, … 31)
- %y : Sayısı yüzyıl olan yıl (2020, 2021, 2022, vb.)
- %H : Sıfırlarla (00, 01, … 23) doldurulmuş bir sayı olarak saat (24 saatlik biçim)
- %I : Sıfırlarla doldurulmuş bir sayı olarak zaman (12 saatlik biçim) (01, 02, … 12)
- %p : AM veya PM
- %M : Sıfırlarla tamamlanan sayı biçimindeki dakika (00, 01, … 59)
- %S : sıfırlarla tamamlanan bir sayı biçiminde saniye (00, 01, … 59)
Yönergelerin tam listesi için bu sayfaya bakın.
Aşağıdaki örnek, farklı senaryolarda to_datetime() işlevindeki format bağımsız değişkeninin nasıl kullanılacağını gösterir.
Örnek: Pandas.to_datetime’da formatı belirtin
Bir perakende mağazasında farklı tarihlerde yapılan toplam satışlar hakkında bilgi içeren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:
import pandas as pd #createDataFrame df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00', '10142023 15:30:50', '10152023 18:15:00'], ' sales ': [100, 140, 235, 120, 250]}) #view DataFrame print (df) dirty dates 0 10012023 4:15:30 100 1 10042023 7:16:04 140 2 10062023 9:25:00 235 3 10142023 15:30:50 120 4 10152023 18:15:00 250 #view data type of each column in DataFrame print ( df.dtypes ) date object dirty int64 dtype:object
Tarih sütununun şu anda bir dize (yani nesne) sütunu olduğunu görebiliriz.
Bu sütunu datetime’a dönüştürmek için pandas.to_datetime() işlevini kullanmaya çalıştığımızı varsayalım:
#attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])
ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0
pandas.to_datetime() işlevi, tarih sütununun o anda içinde bulunduğu tarih ve saat biçimini tanımadığı için bir hata alıyoruz.
Sütunun formatını belirtmek için format argümanını da kullanabiliriz:
#convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')
#view DataFrame
print (df)
dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250
#view updated type of each column
print ( df.dtypes )
date datetime64[ns]
dirty int64
dtype:object
Tarih sütununun başarıyla tarihsaat sütununa dönüştürüldüğünü ve tarih sütununun tam biçimini belirtmek için format argümanını kullandığımız için herhangi bir hata almadığımızı görebiliriz.
Not : Pandas to_datetime() işlevinin tam belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde pandalarda diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:
Pandalar’da tarih aralığı nasıl oluşturulur?
Pandalar’da zaman damgasını tarih/saat’e dönüştürme
Pandalarda iki tarih arasındaki fark nasıl hesaplanır?