6
私は巨大なパンダのデータフレームを持っています。私はhtmlテーブルに変換しています。すなわち、dataframe.to_html()
、約1000行です。私は1000行全体をスクロールする必要はありませんので、ページネーションを使用する簡単な方法。言えば、最初の50行を表示し、次に50行を表示するには、次へをクリックしますか?pandas dataframe.to_html()
私は巨大なパンダのデータフレームを持っています。私はhtmlテーブルに変換しています。すなわち、dataframe.to_html()
、約1000行です。私は1000行全体をスクロールする必要はありませんので、ページネーションを使用する簡単な方法。言えば、最初の50行を表示し、次に50行を表示するには、次へをクリックしますか?pandas dataframe.to_html()
私が考えることができる最良の解決策は、2つの外部JSライブラリ:JQueryとそのDataTables pluginです。これにより、ほとんど労力をかけずに、改ページよりもはるかに多くのことが可能になります。
のは、いくつかのHTML、JSとPython設定してみましょう:
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)
をそして今、我々はそれをテストするためのサンプルデータセットを読み込むことができます。
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)
いくつかのノート:
base_html
文字列のpageLength
パラメータに注目してください。ここでは、1ページあたりのデフォルト行数を定義しました。他のオプションのパラメータは、DataTable options pageにあります。df_window
関数はJupyterノートブックでテストされましたが、プレーンなPythonでも動作するはずです。df_window
をスキップして、返された値をdf_html
からHTMLファイルに書き込むことができます。
これは間違いなく間違った質問です! CSSクラスを使用して "ページネーション"を実装できる場合は、[スタイル](http://pandas.pydata.org/pandas-docs/stable/style.html)を条件付きで使用することができます(つまり、行0-49 - スタイル:page1、50-99 - Style:page2など)。 – MaxU
Jupyterノートブック内で、または独立したHTMLファイルとして表示しようとしていますか? – Shovalt