Arasında bir fark var
- İçerik bir dataframe hücrenin (bir ikili değer) ve
- onun sunum , bizim için insanları (görüntülemeden).
Yani soru şu: Veri / veri türlerini değiştirmeden verilerimin uygun sunumuna nasıl ulaşabilirim ?
İşte cevap:
- Veri çerçevenizi görüntülemek için Jupyter not defterini kullanıyorsanız veya
- Bir HTML dosyası biçiminde bir sunuya ulaşmak istiyorsanız (çok sayıda hazırlanmış gereksiz
id
ve daha fazla CSS stili class
için özniteliklerle bile - bunları kullanabilir veya kullanmayabilirsiniz),
stil kullanın . Stil, veri çerçevenizin veri / veri türlerini değiştirmez.
Şimdi size Jupyter not defterinde nasıl ulaşacağınızı göstereceğim - HTML dosyası biçiminde bir sunum için sorunun sonundaki nota bakın.
Sütununun DOB
zaten türüne sahipdatetime64
olduğunu varsayacağım (ona nasıl ulaşacağını bildiğini gösterdin). Size bazı temel stilleri göstermek için basit bir veri çerçevesi (yalnızca bir sütun içeren) hazırladım:
DOB
0 2019-07-03
1 2019-08-03
2 2019-09-03
3 2019-10-03
DOB
0 07/03/2019
1 08/03/2019
2 09/03/2019
3 10/03/2019
DOB
0 03-07-2019
1 03-08-2019
2 03-09-2019
3 03-10-2019
Dikkatli ol!
Dönen nesne bir veri çerçevesi DEĞİLDİR - bu sınıfın bir nesnesidir Styler
, bu nedenle şuna geri atamayın df
:
Bunu yapma:
df = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")}) # Don´t do this!
(Her veri çerçevesinin kendi .style
özelliği tarafından erişilebilen Styler nesnesi vardır ve bu df.style
nesneyi veri çerçevesinin kendisini değil, değiştirdik .)
Sorular ve cevaplar:
S: Bir Jupyter not defteri hücresinde son komut olarak kullanılan Styler nesneniz (veya onu döndüren bir ifade) neden Styler nesnesinin kendisini değil de (stilize edilmiş) tablonuzu görüntülüyor ?
C: Çünkü her Styler nesnesinin, ._repr_html_()
veri çerçevenizi oluşturmak için bir HTML kodu döndüren bir geri çağırma yöntemi vardır (güzel bir HTML tablosu olarak).
Jupyter Notebook IDE , ona sahip olan nesneleri oluşturmak için bu yöntemi otomatik olarak çağırır .
Not:
Stil için Jupyter not defterine ihtiyacınız yok (yani , veri / veri türlerini değiştirmeden bir veri çerçevesini güzel bir şekilde çıkarmak için ).
render()
HTML koduyla bir dize elde etmek istiyorsanız (ör. Biçimlendirilmiş veri çerçevenizi Web'de yayınlamak veya tablonuzu HTML biçiminde sunmak için) bir Styler nesnesinin de bir yöntemi vardır :
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()