當文本輸入為空但我無法擺脫它時,第 25,26 行有一條錯誤訊息 (KeyError: '')。我希望僅當兩個小部件都存在文本輸入時才存盤變數 Vec1 和 Vec2。要運行代碼,您可以加載任何 xlsx 表,如下所示:
| 變數1 | 變數2 |
|---|---|
| 5 | 7 |
| 6 | 8 |
這是我的代碼
import numpy as np
import pandas as pd
import streamlit as st
st.set_page_config(layout="wide")
#Import file
xlsx_file = st.sidebar.file_uploader('Import File', type = 'xlsx')
#Select Variables of interest
Vec1Name = st.sidebar.text_input("First Variable Name")
Vec2Name = st.sidebar.text_input("Second Variable Name")
st.title('Data')
col1, col2 = st.columns((3,1))
if xlsx_file is not None:
df = pd.read_excel(xlsx_file)
col1.write(''' #### Dataframe''')
col1.write(df)
if all(var is not None for var in [Vec1Name, Vec2Name]):
#Store Variables
Vec1 = df[str(Vec1Name)]
Vec2 = df[str(Vec2Name)]
#Variables of Interest
col2.write(''' #### Variables of Interest''')
col2.write(df[[str(Vec1Name),str(Vec2Name)]])
謝謝您的幫助!
uj5u.com熱心網友回復:
您面臨的錯誤是因為在 df.text_input 中找不到。如果您已經知道您希望輸入位于列之間,為什么不使用 st.selectbox 代替,并將 df.columns 指定為選項?讓我知道該代碼是否效果更好:
import numpy as np
import pandas as pd
import streamlit as st
st.set_page_config(layout="wide")
#Import file
xlsx_file = st.sidebar.file_uploader('Import File', type = 'xlsx')
st.title('Data')
col1, col2 = st.columns((3,1))
if xlsx_file is not None:
df = pd.read_excel(xlsx_file)
#Select Variables of interest
Vec1Name = st.sidebar.selectbox("First Variable Name", df.columns)
Vec2Name = st.sidebar.selectbox("Second Variable Name", df.columns)
col1.write(''' #### Dataframe''')
col1.write(df)
#Store Variables
Vec1 = df[str(Vec1Name)]
Vec2 = df[str(Vec2Name)]
#Variables of Interest
col2.write(''' #### Variables of Interest''')
col2.write(df[[str(Vec1Name),str(Vec2Name)]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/492177.html
上一篇:雖然,不在Python中回圈
