python︱写markdown一样写网页,代码快速生成web工具:streamlit 数据探索案例(六)
系列参考: python︱写markdown一样写网页,代码快速生成web工具:streamlit介绍(一) python︱写markdown一样写网页,代码快速生成web工具:streamlit 重要组件介绍(二) python︱写markdown一样写网页,代码快速生成web工具:streamlit 展示组件(三) python︱写markdown一样写网页,代码快速生成web工具:streamlit lay-out布局(四) python︱写markdown一样写网页,代码快速生成web工具:streamlit 缓存(五) python︱写markdown一样写网页,代码快速生成web工具:streamlit 数据探索案例(六) streamlit + opencv/YOLOv3 快速构建自己的图像目标检测demo网页(七)
github代码链接,求star: mattzheng/streamlit_demo
文章目录
本案例来看一个专门做数据展示的案例1,uber数据集的展示。
1 数据探索性app - Create a data explorer app
在本教程中,您将使用Streamlit的核心功能来创建一个交互式应用程序; 探索纽约市打车软件优步的公共接送数据集。 完成后,您将知道如何获取和缓存数据、绘制图表、在地图上绘制信息,并使用交互式小部件(如滑块)来过滤结果。
2 加载数据
现在你有了一款应用程序,接下来你需要做的就是获取纽约市取车和落车的优步数据集。
streamlit好处就在于cache只加载最初一次即可,其他的时候都会保存到缓存之中.
只要执行:
load_data(10000)
后续的text都需要等他加载完才会出现。
DATE_COLUMN = 'date/time'
# DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
# 'streamlit-demo-data/uber-raw-data-sep14.csv.gz')
DATA_URL = 'uber-raw-data-sep14.csv'
@st.cache
def load_data(nrows):
data = pd.read_csv(DATA_URL, nrows=nrows)
lowercase = lambda x: str(x).lower()
data.rename(lowercase, axis='columns', inplace=True)
data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
return data
data_load_state = st.text('Loading data...')
data = load_data(10000)
这里源码中是直接从s3上面下载,所以比较慢,可以直接加载本地的。
3 复选框 - 是否显示数据
- subheader 添加副标题,Raw data
- 写出dataframe的data
if st.checkbox('Show raw data'):
st.subheader('Raw data')
st.write(data)
4 画柱状图
st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)
5 展示特定数据 + 画地图
这里也还是可以使用其他栏目,比如下拉框
option = st.selectbox(
'Which number do you like best?',
[1,2,3,4,5])
主要的数据格式为:
data/time | lat | lon | base
其中,这里的base,B02512,指的是不同的国家地区的编码?
# Some number in the range 0-23
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]
st.subheader('Map of all pickups at %s:00' % hour_to_filter)
st.map(filtered_data)
dataframe = pd.DataFrame(
np.random.randn(10, 20),
columns=('col %d' % i for i in range(20)))
'''
dataframe 显示方式一:sr.write
'''
st.write(dataframe)
'''
dataframe 显示方式二:直接键入最终结果dataframe
'''
dataframe
'''
dataframe 显示方式三:st.dataframe
'''
st.dataframe(dataframe.style.highlight_max(axis=0))
'''
dataframe 显示方式四:st.table
最丑的一种方式,会变成无页面约束的宽表
'''
dataframe = pd.DataFrame(
np.random.randn(10, 20),
columns=('col %d' % i for i in range(20)))
st.table(dataframe)
这边有几种dataframe的展示方式:
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用