Python Streamlight加载列数据花费太多时间
我在Streamlight中使用了一个简单的代码片段,它显示了由我拥有的excel组成的数据框架。问题是在Streamlight区域的filter列中加载数据需要花费太多时间。在那个过滤区域,我搜索材料名称,但加载并显示我要选择的数据甚至需要30秒。如何解决此问题并使其以最快的速度选择数据 代码是:Python Streamlight加载列数据花费太多时间,python,pandas,streamlit,Python,Pandas,Streamlit,我在Streamlight中使用了一个简单的代码片段,它显示了由我拥有的excel组成的数据框架。问题是在Streamlight区域的filter列中加载数据需要花费太多时间。在那个过滤区域,我搜索材料名称,但加载并显示我要选择的数据甚至需要30秒。如何解决此问题并使其以最快的速度选择数据 代码是: import streamlit as st import pandas as pd @st.cache def load_data(nrows): df=pd.read_excel('m
import streamlit as st
import pandas as pd
@st.cache
def load_data(nrows):
df=pd.read_excel('materials.xlsx',nrows=nrows)
return df
df=load_data(100000)
species = st.multiselect('SELECT THE MATERIAL', df['Name'])
new_df = df[(df['Name'].isin(species))]
st.write(new_df)
为了说明选择数据的速度有多慢,请看以下内容:最终,如果不知道代码的哪部分运行缓慢以及实际加载了多少数据,就很难给出具体的建议。看起来您正在从电子表格加载100000行。这可能需要大量数据,特别是如果这些行本身很大的话 有些事情可以尝试: 在代码块周围添加一些性能检测,以找出运行缓慢的原因。这可以很简单,只需在一段代码之前和之后调用time.time,并输出两个值之间的差异: 导入上下文库 导入时间 作为pd进口熊猫 导入streamlit作为st @contextlib.contextmanager def配置文件名称: 开始时间=时间
yield@st.cacheallow\u output\u mutation=True对数据加载的性能没有任何影响。再次在选择材质名称时加载数据需要花费太多时间才能显示。正如我所说,我的excel有2000行和3列,甚至每列都有不同的数据。很可能是浏览器中的下拉控件不适合显示2000个项目。您还没有提供任何分析数据,所以我们所能做的就是猜测造成速度缓慢的根本原因,但是一个2000项的下拉列表可能不是特别有用。您能在不同的控件中显示该数据吗?在填充下拉列表之前,是否可以使用文本输入控件来管理数据过滤?