Python EmptyDataError:没有要从文件中分析的关于streamlit的列
我正在使用Streamlight v0.68版,目前正在使用CSV文件进行数据分析Python EmptyDataError:没有要从文件中分析的关于streamlit的列,python,pandas,streamlit,Python,Pandas,Streamlit,我正在使用Streamlight 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) 首先,它可以工作
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__
EmptyDataError:没有要从文件中解析的列
回溯:
文件“D:\My Programs\Projects\ReportAnalysis\venv\lib\site packages\streamlit\script\u runner.py”,第324行,在运行脚本中
exec(代码、模块、指令)
文件“D:\My Programs\Projects\ReportAnalysis\epl\app.py”,第9行,在
data=pd.read\u csv(上传的\u文件,内存不足=False)
文件“D:\My Programs\Projects\ReportAnalysis\venv\lib\site packages\pandas\io\parsers.py”,第686行,以read\U csv格式
返回读取(文件路径或缓冲区,kwds)
文件“D:\My Programs\Projects\ReportAnalysis\venv\lib\site packages\pandas\io\parsers.py”,第452行,已读
parser=TextFileReader(fp_或_buf,**kwds)
文件“D:\My Programs\Projects\ReportAnalysis\venv\lib\site packages\pandas\io\parsers.py”,第946行,在\uuu init中__
自制发动机(自制发动机)
文件“D:\My Programs\Projects\ReportAnalysis\venv\lib\site packages\pandas\io\parsers.py”,第1178行,位于“生成引擎”中
self.\u engine=CParserWrapper(self.f,**self.options)
文件“D:\My Programs\Projects\ReportAnalysis\venv\lib\site packages\pandas\io\parsers.py”,第2008行,在\uuu init中__
self.\u reader=parsers.TextReader(src,**kwds)
pandas.\u libs.parsers.TextReader.\u cinit中的文件“pandas\\u libs\parsers.pyx”,第540行__
如何处理此错误?此问题仅在新版本v0.68.1中出现。作为一种解决方法,您始终可以使用以下方法返回到旧版本,例如0.66:
pip安装streamlit=0.66
这将对您有所帮助。适用于当前版本0.69.1
global train_upload
train_upload = st.file_uploader("Upload csv data", type=['csv'])
if (train_upload is not None):
train_features = train_upload.read()
train_features = str(train_features,'utf-8')
train_features = StringIO(train_features)
train_features = pd.read_csv(train_features)
st.write(train_features)
据了解,这是因为他们在应用程序第二次刷新时返回相同的缓冲区。由于pd.read_csv会耗尽缓冲区,因此第二次调用read_csv时不会返回任何行
添加一个seek(0)
重置缓冲区对我有效
e、 g
如果我更新了程序中的任何内容并重新运行它,当您删除head()的括号时会发生什么。它显示了相同的错误。从您的错误来看,它似乎来自文件的读取,而不是文件的写入。代码中的“第9行”是什么?
data=pd.read\u csv(上传的文件,内存不足=False)
这是第9行。我只写了代码,没有在这里导入。当您重新运行脚本时,即使没有st.write(data.head())
也会发生错误
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)