熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)大數據時(shí)代發(fā)現了一個(gè)好用到爆的數據分析利器
發(fā)現了一個(gè)好用到爆的數據分析利器
2022-08-03
收藏

作者:俊欣

來(lái)源:關(guān)于數據分析與可視化

小編最近碰上了一個(gè)數據分析利器,可以將我們需要的數據展示在網(wǎng)頁(yè)上棵川,并且進(jìn)行相對深度的數據分析與挖掘炕诫,所以就打算借此機會(huì )和大家分享一下挚并。

關(guān)于streamlit-aggrid

我們知道用Streamlit模塊來(lái)進(jìn)行web應用的開(kāi)發(fā)真的非常的方便,但是在展示表格方面則顯得十分地簡(jiǎn)陋,只有兩個(gè)簡(jiǎn)單的接口函數暗甥,分別是st.table(df)st.dataframe(df),對于字段較多的表格數據的展示非常的不友好吮扫,今天小編就來(lái)介紹一款Streamlit的插件拔萤,streamlit-aggrid猖腕,它的基礎功能包括

  • 數據排序
  • 表格樣式的調整
  • 數據的篩選
  • 翻頁(yè)
  • 等等

首先我們先通過(guò)pip命令下載該模塊

pip install streamlit-aggrid

我們先來(lái)寫(xiě)一個(gè)簡(jiǎn)單的demo月帝,看一下該模塊到底能實(shí)現哪些功能,代碼如下

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

st.set_page_config(page_title="網(wǎng)飛(Netflix)的電影數據分析", layout="wide") 
st.title("網(wǎng)飛(Netflix)的電影數據分析")
shows = pd.read_csv("netflix_titles.csv")  
AgGrid(shows)

output

發(fā)現了一個(gè)好用到爆的數據分析利器

我們和st.dataframe(shows)出來(lái)的結果相比,發(fā)現調用streamlit-aggrid模塊展示出來(lái)的表格更加美觀(guān)驱敲,如下圖所示

不同方法的結果對比

發(fā)現了一個(gè)好用到爆的數據分析利器
發(fā)現了一個(gè)好用到爆的數據分析利器

當然我們還能夠給數據進(jìn)行排序,如下圖所示

發(fā)現了一個(gè)好用到爆的數據分析利器

并且還可以根據指定的條件來(lái)進(jìn)行數據的篩選,如下圖所示

發(fā)現了一個(gè)好用到爆的數據分析利器

我們還可以按照自己的喜好來(lái)拖拽表格當中的每一列的數據孽验,調整表格的順序

發(fā)現了一個(gè)好用到爆的數據分析利器

更多操作

翻頁(yè)

除了上面的一些基本操作之外,streamlit-aggrid模塊展示出來(lái)的表格數據還支持翻頁(yè)操作,代碼如下

import pandas as pd import streamlit as st from st_aggrid import AgGrid from st_aggrid.grid_options_builder import GridOptionsBuilder

st.set_page_config(page_title="網(wǎng)飛(Netflix)的電影數據分析", layout="wide")
st.title("網(wǎng)飛(Netflix)的電影數據分析")

shows = pd.read_csv("netflix_titles.csv")

gb = GridOptionsBuilder.from_dataframe(shows)
gb.configure_pagination()
gridOptions = gb.build()

AgGrid(shows, gridOptions=gridOptions)

output

發(fā)現了一個(gè)好用到爆的數據分析利器

分組統計

我們平常在Pandas模塊當中用到的groupby分組統計來(lái)streamlit-aggrid模塊當中也可以輕松地實(shí)現,代碼如下

import pandas as pd import streamlit as st from st_aggrid import AgGrid from st_aggrid.grid_options_builder import GridOptionsBuilder

st.set_page_config(page_title="網(wǎng)飛(Netflix)的電影數據分析", layout="wide")
st.title("網(wǎng)飛(Netflix)的電影數據分析")

shows = pd.read_csv("netflix_titles.csv")
gb = GridOptionsBuilder.from_dataframe(shows)

gb.configure_pagination()
gb.configure_side_bar()
gb.configure_default_column(groupable=True, value=True, enableRowGroup=True, aggFunc="sum", editable=True)
gridOptions = gb.build()

AgGrid(shows, gridOptions=gridOptions, enable_enterprise_modules=True)

這樣,在表格的最左側會(huì )出現工具欄,我們可以在其中進(jìn)行進(jìn)一步的操作,如下圖所示

發(fā)現了一個(gè)好用到爆的數據分析利器

高亮表格數據

Pandas模塊當中我們可以給指定的數據高亮顯示,那么同樣地在streamlit-aggrid模塊當中也可以實(shí)現,代碼如下

shows = pd.read_csv("netflix_titles.csv")
gb = GridOptionsBuilder.from_dataframe(shows)

cellsytle_jscode = JsCode( """
function(params) {
    if (params.value.includes('United States')) {
        return {
            'color': 'white',
            'backgroundColor': 'red'
        }
    } else {
        return {
            'color': 'black',
            'backgroundColor': 'white'
        }
    }
};
""" )

gb.configure_column("country", cellStyle=cellsytle_jscode)
gridOptions = gb.build()
data = AgGrid(
    shows,
    gridOptions=gridOptions,
    enable_enterprise_modules=True,
    allow_unsafe_jscode=True )

我們將國家為“美國”的電影數據用紅色高亮顯示出來(lái)肥符,如下圖所示

發(fā)現了一個(gè)好用到爆的數據分析利器

數據分析咨詢(xún)請掃描二維碼

最新資訊
更多
客服在線(xiàn)
立即咨詢(xún)