違いがあります
- コンテンツデータフレームセルの(バイナリ値)と
- そのプレゼンテーションは、私たちのために人間を(それを表示します)。
だから問題は:データ/データ型自体を変更せずに、私のデータの適切なプレゼンテーションに到達する方法は?
ここに答えがあります:
- データフレームの表示にJupyterノートブックを使用する場合、または
- HTMLファイルの形式でプレゼンテーションに到達したい場合(さらに CSSスタイル
id
を設定class
するために多くの準備された余分な属性があったとしても、それらを使用してもしなくてもかまいません)。
スタイリングを使用します。スタイリングは、データフレームの列のデータ/データ型を変更しません。
次に、Jupyterノートブックでその方法を説明します。HTMLファイル形式のプレゼンテーションについては、質問の終わり近くにあるメモを参照してください。
私はあなたの列がDOB
すでにタイプを持っているdatetime64
と仮定します(あなたはあなたがそれに到達する方法を知っていることを示しました)基本的なスタイルを示すために、単純なデータフレーム(1列のみ)を用意しました。
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
注意してください!
返されるオブジェクトはデータフレームではありません—これはクラスのオブジェクトであるStyler
ため、割り当て直さないでくださいdf
。
これを行わないでください:
df = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")}) # Don´t do this!
(すべてのデータフレームには、その.style
プロパティからアクセス可能なStylerオブジェクトがdf.style
あり、データフレーム自体ではなく、このオブジェクトを変更しました。)
質問と回答:
Q: Jupyterノートブックセルの最後のコマンドとして使用されるStylerオブジェクト(またはそれを返す式)が、Stylerオブジェクト自体ではなく、(スタイル付き)テーブルを表示するのはなぜですか?
A:すべてのStylerオブジェクトには、._repr_html_()
データフレームをレンダリングするためのHTMLコードを返すコールバックメソッドがあります(適切なHTMLテーブルとして)。
Jupyter Notebook IDEは、このメソッドを自動的に呼び出して、それを含むオブジェクトをレンダリングします。
注意:
スタイリングにJupyterノートブックは必要ありません(つまり、データ/データ型を変更せずにデータフレームを適切に出力するため)。
render()
HTMLコードで文字列を取得する場合(たとえば、フォーマットされたデータフレームをWebに公開する場合、または単にHTML形式でテーブルを提示する場合)、Stylerオブジェクトにもmethod があります。
df_styler = df.style.format({"DOB": lambda t: t.strftime("%m/%d/%Y")})
HTML_string = df_styler.render()