0:30 消灯。またしても寝付きにくい。

7:55 起床。曇りらしい。朝飯を食って外出まで PC をやる。

9:00 外出。まっすぐ八広図書館に移動。朝刊(産経、東京)を読む。 9:40 キャレルに着席。

  • apt update など。特になし。
  • イカサマ麻雀選手権【元麻雀プロvsモナカ公国】 - YouTube: 編集スタイルも込みで堀内プロの対応力の高さに舌を巻く。 モナカ公国本家でも見たことのないようなイカサマを敢行する。
  • Windows Terminal の背景を透過させる方法を調査。結論から言うとうまくいかなかった。 透過というか、何かぼやけている。これでは裏のウィンドウのテキストを読むという目的にそぐわない。 Pandas のドキュメントを読みながらコードを書くときにウィンドウを重ねられれば省スペースになると思ったのだが。
  • 忘れないうちに図書館の閲覧室状況を調査。ホームレスのときに作成したスプレッドシートが未だに有用なのはうれしい。

最後、MSX パロディウスのビデオを YouTube で速読して退館。タコはプログラマーだったのだ。

12:10 曳舟の部屋に戻る。おやつ休憩にする。麻雀の練習。ボコボコに放銃する。

14:05 Pandas のスタイリングの学習を終わる。IPython ではなくて Jupyter Notebook で動作確認をする。 いつだったか VS Code に Jupyter 拡張を入れておいて正解だった。

イルベロの研究。スロー再生で何かわかるかと思ったが、効果音が丁寧に作られていることがわかっただけだった。 体力回復のために外出まで居眠りする。

16:00 起き上がって外出。スカイツリータウンに移動して花を摘んでから電車に乗る。 小川町駅を出て肉の万世前経由で秋葉原 HEY に移動。 途中外出をはさみつつイルベロを 5 ゲーム。腹が減ってそばでも食うかと思ったら、日曜は 18:00 閉店なのだった。 代わりに自動販売機で何か熱いものでも買って飲もうかと思ったら、100 円で買えるものが何もない。 諦めて空腹のまま遊び続ける。

最後のゲームでやっと 90 億を出せた。しかし、十年前だったら 95 億のプレイ内容なのだが。

20:00 完全退店。また地下鉄に戻る。押上駅まで移動して地下道を伝って業平で地上に出る。

20:50 ビッグエー墨田業平店。741 円。

  • 明太のり弁当
  • ベビーチーズ鉄分 (4)
  • 大きなおむすび (2)
  • 小粒納豆 (6)
  • ハムタマゴマヨパン
  • ジャムパン
  • ポテコうましお

21:00 曳舟の部屋に戻る。PC を開いてメシ。初めて買った「大きなおむすび梅と昆布」が美味い。 soejima1000 を聴きながらすべての作業をしているのだが、たまに歌い出すのが面白すぎる。 アニメ原作モノが多い。

22:30 入浴。23:15 PC 前に復帰。23:45 まで Pandas のオプション設定の章を読む。

Pandas Note

DataFrame オブジェクトの .style をいじると見てくれが変わる。 これは Styler 型であり、恰好を決めるメソッドを備えている。

実は CSS で実現されている。

  • Styling
    • Building styles
      • .applymap() は要素ごとに、.apply() は列・行・表ごとに。
      • .render() は HTML に書かれる文字列を返す。 実際には style 要素と table 要素を書き出すようだ。
      • .applymap() に渡す関数の要件。セルの値を入力とし、CSS の attribute: value を出力とする。
      • .apply() はその複数版とでも言うか。引数 axis でどの範囲に適用するのかを指示する。
      • .applymap().apply() を連結して呼び出すことを推奨している。
      • «Use .apply(function, axis=None) to indicate that your function wants the entire table»
    • Finer control: slicing
      • キーワード引数 subset を指定すると、特定の列または行に適用できるようになる。
      • 状況によっては functools.partial() を併用することになるかもしれない。
    • Finer Control: Display Values
      • 表示される値と実際のそれは区別されなければならない。書式の話だ。
      • .style.format()
    • Builtin styles
    • Sharing styles
      • style2.use(style1.export())
    • Other options
      • with pd.option_context('display.precision', 2): で一時的に精度を変える。
      • .style.set_caption()
      • .style.set_table_styles() は難しい。
      • .style.set_na_rep() で欠損値の表示を指定する。
      • .style.hide_index(), .style.hide_columns()
      • 定義済み CSS クラス
    • Fun stuff
    • Export to Excel
      • EXPERIMENTAL
      • OpenPyXL または XlsxWriter が要る。
    • Extensibility
      • Pandas を使って何かいいライブラリーを作ったなら教えて欲しい。リンクしよう。
      • 意外にも Jinja2 の話になる。Styler のサブクラスの実装方法について。
  • Options and settings
    • Overview
      • pd.options.xxxxx
      • get_option(), set_option()
      • reset_option(): 設定値を既定値に戻す
      • describe_option()
      • option_context(): これは with ブロックで用いる
      • 以上の関数はオプション名に正規表現を指定することもできる
    • Getting and setting options
      • set_option('option regex', new_value) によりオプションを変更
    • Setting startup options in Python/IPython environment
      • IPython のプロファイルに上記オプション変更処理を書くとよい。 いちおう書いておくとコンソールで

        bash$ ipython profile create pandas_session
        

        とやって生成されるディレクトリーの startup 以下に適当な py ファイルを作成してコードを書くのだ。

    • Frequently used options
      • .display.max_rows and .display.max_columns
      • .display.expand_frame_repr
      • .display.large_repr
      • .display.max_colwidth
      • .display.max_info_columns
      • .display.max_info_rows
      • .display.precision
      • .display.chop_threshold
      • .display.colheader_justify
    • Available options
      • 表にまとまっている。
    • Number formatting
      • これは set_options() ではなく set_eng_float_format() を用いる。
    • Unicode formatting
      • 西洋の言語群で用いられる文字の倍の幅を持つ文字を東洋の言語ではよく用いる。 そのため .display.unicode.east_asian_width をオンにする。
      • .display.unicode.ambiguous_as_wide
    • Table schema display
      • .display.html.table_schema