我有一個資料框,其中包含“生日”列,但它的物件型別 類似于這種1984-11-15格式 y%-%M-%d。我想將其轉換為日期并僅提取沒有重復的年份 ,以便根據年份過濾資料框。
我正在使用多選選項以允許用戶過濾選擇多個選項的資料框,但是當我嘗試轉換列型別時系統崩潰并顯示以下錯誤。
StreamlitAPIException : 每個多選默認值都必須存在于選項中
追溯:
File "f:\AIenv\streamlit\TEC_APPS\fit_in_out_leb.py", line 762, in <module>
main()File "f:\AIenv\streamlit\TEC_APPS\fit_in_out_leb.py", line 366, in main
db_stb = st.sidebar.multiselect("Select date of birth ",list(query_bd),default = query_bd)
這個錯誤是什么意思以及如何解決它?
代碼:
df['birthdate'] = pd.to_datetime(df['birthdate'])
query_bd = df.birthdate.unique()
db_stb = st.sidebar.multiselect("Select date of birth ",list(query_bd),default = query_bd)
uj5u.com熱心網友回復:
為年份創建一個新列,該列用于生成唯一選項并根據年份選擇一個框架。
import streamlit as st
import pandas as pd
d = {
'birthdate': ['2022-01-01', '2021-01-01', '2020-01-01', '2019-01-01', '2019-02-05']
}
df = pd.DataFrame(d)
df['birthdate'] = pd.to_datetime(df['birthdate'])
df['year'] = df['birthdate'].dt.year
query_bd = df.year.unique()
db_stb = st.sidebar.multiselect("Select date of birth ", query_bd, default=query_bd)
selected = df.loc[df['year'].isin(db_stb)]
st.write(selected['birthdate'].dt.date)
輸出

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435900.html
