Streamlit aggridで表のカスタマイズ

会社技術

はじめに

どうしても表をヘッダー組で作りたい。

コード

ヘッダーのデータの置き場が重要。

import streamlit as st
import pandas as pd
from st_aggrid import AgGrid

df = pd.read_csv("tmp.csv")
gridOP={"columnDefs":[{
    "headerName":"",
    "children":[
        {"field":"index",
         "pinned":"left"}
    ]}]}

for i in range(2):
    j=i+1
    gridOP_ad={
        "headerName":"header"+str(j),
        "children":[
            {"field":"data1_"+str(j)
             ,"editable":True},
            {"field":"data2_"+str(j)}
        ]
    }
    gridOP["columnDefs"].append(gridOP_ad)

AgGrid(df,gridOptions=gridOP
       ,layout="wide"
       )


実物

ポイント

グリッドオプションを手作りする。ピボットで作ったデータではじめはやろうとしたが、上手くいかなかった。もとになっているjavaのページをみると参考になるかも。

後日談

ヘッダーのグループ化をするときにちょっと面倒なことをしていたようだ。次回の記事で修正したい。

コメント