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?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir