python - 空数据错误 : No columns to parse from file about streamlit

标签 python pandas streamlit

我使用的是 streamlit 版本 v0.68,目前正在处理 CSV 文件以进行数据分析。

st.title('Report Analysis')
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
    data = pd.read_csv(uploaded_file, low_memory=False)
    st.write(data.shape)
首先它可以工作,但是如果我在本地主机中重新运行该程序,则会出现错误:
EmptyDataError: No columns to parse from file
Traceback:

File "D:\My Programs\Projects\ReportAnalysis\venv\lib\site-packages\streamlit\script_runner.py", line 324, in _run_script
    exec(code, module.__dict__)
File "D:\My Programs\Projects\ReportAnalysis\epl\app.py", line 9, in <module>
    data = pd.read_csv(uploaded_file, low_memory=False)
File "D:\My Programs\Projects\ReportAnalysis\venv\lib\site-packages\pandas\io\parsers.py", line 686, in read_csv
    return _read(filepath_or_buffer, kwds)
File "D:\My Programs\Projects\ReportAnalysis\venv\lib\site-packages\pandas\io\parsers.py", line 452, in _read
    parser = TextFileReader(fp_or_buf, **kwds)
File "D:\My Programs\Projects\ReportAnalysis\venv\lib\site-packages\pandas\io\parsers.py", line 946, in __init__
    self._make_engine(self.engine)
File "D:\My Programs\Projects\ReportAnalysis\venv\lib\site-packages\pandas\io\parsers.py", line 1178, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
File "D:\My Programs\Projects\ReportAnalysis\venv\lib\site-packages\pandas\io\parsers.py", line 2008, in __init__
    self._reader = parsers.TextReader(src, **kwds)
File "pandas\_libs\parsers.pyx", line 540, in pandas._libs.parsers.TextReader.__cinit__
如何处理这个错误?

最佳答案

根据 this post from the Streamlit community page ,这是因为它们在应用程序第二次刷新时返回相同的缓冲区。由于 pd.read_csv 耗尽了缓冲区,您第二次调用 read_csv 将不会返回任何行。
添加 seek(0)重置缓冲区对我有用。
例如

st.title('Report Analysis')
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
    uploaded_file.seek(0)
    data = pd.read_csv(uploaded_file, low_memory=False)
    st.write(data.shape)

关于python - 空数据错误 : No columns to parse from file about streamlit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64347681/

相关文章:

python - 无法导入 BertTokenizer

python - 将多列合并为一列,删除重复项

docker - 错误:由于环境错误而无法安装软件包:[Errno 28]设备上没有剩余空间-尝试在docker中运行streamlit时

python - 如何在streamlit中显示热图颜色相关图

python - 如何统计每个单词在句子中出现的次数,得到每个句子的分数?

python - 在 PyQt 中的 QTextEdit 上绘制垂直线

python - Pandas 数据框 : How to update multiple columns by applying a function?

python - 如何修改streamlit中的选择框列长度?

python - 同情 : creating a numpy function from diagonal matrix that takes a numpy array

python - 如何在与 Pandas 相同的赋值函数中使用创建的变量