Çok büyük pandalar veri karememe sahibim, 1000 satırlık bir tablo olan html tablosuna yani dataframe.to_html()
dönüştürüyorum. Sayfa sırasını kullanmanın kolay bir yolu, böylece 1000 satırın tamamını kaydırmam gerekmeyecek. Söyleyin, ilk 50 satırı görüntüleyin ve ardından sonraki 50 satırı görmek için ileri 'yi tıklayın.Pandalar üzerinde sayfalandırma dataframe.to_html()
6
A
cevap
0
Düşünebildiğim en iyi çözüm, birkaç tane harici JS kitaplığı içerir: JQuery ve onun DataTables plugin. Bu çok az çaba ile sayfalamadan çok daha fazlasını mümkün kılacaktır.
Biraz HTML, JS ve piton kuralım:
from tempfile import NamedTemporaryFile
import webbrowser
base_html = """
<!doctype html>
<html><head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.css">
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
</head><body>%s<script type="text/javascript">$(document).ready(function(){$('table').DataTable({
"pageLength": 50
});});</script>
</body></html>
"""
def df_html(df):
"""HTML table with pagination and other goodies"""
df_html = df.to_html()
return base_html % df_html
def df_window(df):
"""Open dataframe in browser window using a temporary file"""
with NamedTemporaryFile(delete=False, suffix='.html') as f:
f.write(df_html(df))
webbrowser.open(f.name)
Simdi bunu test etmek için bir örnek veri kümesi yükleyebilirsiniz:
from sklearn.datasets import load_iris
import pandas as pd
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df_window(df)
Bir kaç not:
base_html
dizesindekipageLength
parametresine dikkat edin. Bu, sayfa başına varsayılan satır sayısını tanımladığım yer. Diğer isteğe bağlı parametreleri DataTable options page'da bulabilirsiniz.df_window
işlevi bir Jupyter Defterinde test edildi, ancak düz python'da da çalışmalıdır.df_window
'u atlayabilir ve döndürülen değeridf_html
'dan bir HTML dosyasına yazabilirsiniz.
İlgili konular
- 1. UIWebView sayfalandırma
- 2. sayfalandırma sayfa
- 3. Yay önyükleme: Bir @RepositoryRestResource üzerinde sayfalandırma nasıl yapılandırılır?
- 4. Bir pandalar dataframe üzerinde verimli hesaplama
- 5. WordPress sayfalandırma düzgün çalışmıyor
- 6. açısal datatables sunucu sayfalandırma
- 7. lucene'de sayfalandırma nasıl elde edilir? bu doğal sayfalandırma desteklemediği, Lucene sayfalandırma ulaşmak için nasıl merak
- 8. Matara mongoengine sayfalandırma
- 9. Dizin Oluşturma ve Sayfalandırma
- 10. Python ve Django'da Sayfalandırma
- 11. gizle sayfalandırma düğmeleri:
- 12. Ekran etiketi sayfalandırma sorunu
- 13. Kargo Toplu geleneksel sayfalandırma
- 14. datatables sayfalandırma düğmeleri - Kaldır
- 15. LongListSelector ile Sürekli Sayfalandırma
- 16. Pandalar
- 17. Titremesiz Meteor'da sayfalandırma nasıl yapılır?
- 18. Wordpress çoklu döngü ve sayfalandırma
- 19. Sayfalandırma ile bileşik filtreleme AngularJs
- 20. Pandalar
- 21. Pandalar:
- 22. Pandalar
- 23. Pandalar
- 24. Pandalar:
- 25. Pandalar
- 26. Cancan ile sayfalandırma nasıl yapılır?
- 27. ikinci sayfa kaydırıcısında sayfalandırma gösterilmiyor
- 28. jqGrid ile istemci tarafı sayfalandırma
- 29. PHP arama sonuçları için sayfalandırma
- 30. Neo4j - Ruby on Rails'den sayfalandırma
Gerçekten de bir soru soran soru! CSS sınıfları kullanılarak "sayfalandırma" gerçekleştirilebiliyorsa, koşullu olarak [Stil] (http://pandas.pydata.org/pandas-docs/stable/style.html) kullanmayı deneyebilirsiniz (örn. 0-49 satır) : sayfa1, 50-99 - Stil: sayfa2, vb.). – MaxU
Bir Jupyter defterinde mi yoksa bağımsız bir HTML dosyası olarak mı görüntülemeye çalışıyorsunuz? – Shovalt