Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Streamlight加载列数据花费太多时间_Python_Pandas_Streamlit - Fatal编程技术网

Python Streamlight加载列数据花费太多时间

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

我在Streamlight中使用了一个简单的代码片段,它显示了由我拥有的excel组成的数据框架。问题是在Streamlight区域的filter列中加载数据需要花费太多时间。在那个过滤区域,我搜索材料名称,但加载并显示我要选择的数据甚至需要30秒。如何解决此问题并使其以最快的速度选择数据

代码是:

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项的下拉列表可能不是特别有用。您能在不同的控件中显示该数据吗?在填充下拉列表之前,是否可以使用文本输入控件来管理数据过滤?