Saya memiliki daftar bilangan bulat berikut yang berisi Tahun dan saya ingin mengonversi ke DatetimeIndex.

date_1=[2000,2001,2002,2003]
#converting to string
date_1_str=[str(i) for i in date_1]
#converting to Datetime
test=pd.to_datetime(date_1_str,format="%Y")
print(test)

Keluaran:

DatetimeIndex(['2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01'], dtype='datetime64[ns]', freq=None)

Mengapa saya tidak dapat melakukan sesuatu yang lebih langsung seperti:

pd.to_datetime(date_1, unit="Y") 

Mengapa saya harus mengonversi dulu ke tipe data string?

Ada pilihan yang lebih baik yang tersedia?

1
Andrea Ciufo 20 November 2020, 13:03

1 menjawab

Jawaban Terbaik

Saya pikir alasannya adalah parameter unit di to_datetime bekerja berbeda, bekerja dengan waktu unix:

satuan , default 'ns'

Satuan arg (D,s,ms,us,ns) menunjukkan satuan, yang merupakan bilangan bulat atau bilangan float. Ini akan didasarkan pada asal. Contoh, dengan unit='ms' dan origin='unix' (default), ini akan menghitung jumlah milidetik ke awal epoch unix.

Tetapi jika nilainya adalah tahun dalam bilangan bulat, itu hanya berbeda format dari datetime, jadi bagi saya ini lebih banyak menggunakan logika di sini.

1
jezrael 20 November 2020, 10:06