Saya memiliki kerangka data panda sebagai berikut:
Symbol Date
A 02/20/2015
A 01/15/2016
A 08/21/2015
Saya ingin mengurutkannya Date
, tetapi kolomnya hanya object
.
Saya mencoba membuat kolom menjadi objek tanggal, tetapi saya mengalami masalah di mana format itu bukan format yang diperlukan. Format yang dibutuhkan adalah 2015-02-20,
dll.
Jadi sekarang saya mencoba untuk mencari cara agar numpy mengubah tanggal 'Amerika' ke dalam standar ISO, sehingga saya bisa menjadikannya objek tanggal, sehingga saya bisa mengurutkan berdasarkan tanggal tersebut.
Bagaimana cara mengubah tanggal amerika ini menjadi standar ISO, atau adakah metode yang lebih langsung yang saya lewatkan dalam panda?
df.Date.astype(np.int64)
harus bekerja untuk waktupd.to_datetime(df.Date)[0]
kembaliTimestamp('2015-02-20 00:00:00')
sort
metode sudah tidak digunakan lagi dan diganti dengansort_values
. Setelah mengonversi ke objek datetime menggunakandf['Date']=pd.to_datetime(df['Date'])
df.sort_values(by=['Date'])
Catatan: untuk mengurutkan di tempat dan / atau dalam urutan menurun (yang terbaru lebih dulu):
df.sort_values(by=['Date'], inplace=True, ascending=False)
sumber
Jawaban @ JAB cepat dan ringkas. Tapi itu mengubah
DataFrame
Anda mencoba mengurutkan, yang mungkin Anda inginkan atau tidak inginkan.( Catatan : Anda hampir pasti akan menginginkannya, karena kolom tanggal Anda harus tanggal, tidak string!)
Jika Anda tidak ingin mengubah tanggal menjadi tanggal, jika Anda tidak ingin mengubah tanggal menjadi tanggal, Anda juga dapat melakukannya dengan cara yang berbeda.
Pertama, dapatkan indeks dari
Date
kolom yang Anda sortir:In [25]: pd.to_datetime(df.Date).order().index Out[25]: Int64Index([0, 2, 1], dtype='int64')
Kemudian gunakan untuk mengindeks dokumen asli Anda
DataFrame
, biarkan tidak tersentuh:In [26]: df.ix[pd.to_datetime(df.Date).order().index] Out[26]: Date Symbol 0 2015-02-20 A 2 2015-08-21 A 1 2016-01-15 A
Sihir!
Catatan: untuk Pandas versi 0.20.0 dan yang lebih baru, gunakan
loc
sebagai penggantiix
, yang sekarang sudah tidak digunakan lagi.sumber
Data yang berisi kolom tanggal dapat dibaca dengan menggunakan kode di bawah ini:
Setelah data dibaca dengan menggunakan baris kode di atas, kolom yang berisi informasi tentang tanggal dapat diakses dengan menggunakan
pd.date_time()
seperti:pd.date_time(data[date_column], format = '%d/%m/%y')
untuk mengubah format tanggal sesuai kebutuhan.
sumber