Python 熊猫-仅使用月份和年份的datetime列计算

Python 熊猫-仅使用月份和年份的datetime列计算,python,pandas,datetime,streamlit,Python,Pandas,Datetime,Streamlit,在数据框中,我很难处理一列只应包含月份和年份的数据 df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.date df["Month"] = pd.to_datetime(df['Datum']).dt.strftime('%B-%Y') 我使用此列作为我的Streamlight应用程序的输入,如下所示: start_date = df[&

在数据框中,我很难处理一列只应包含月份和年份的数据

df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.date
df["Month"] = pd.to_datetime(df['Datum']).dt.strftime('%B-%Y')
我使用此列作为我的Streamlight应用程序的输入,如下所示:

start_date = df["Month"].min()
end_date = df["Month"].max()

start, end = st.sidebar.slider("Label", start_date, end_date, (start_date, end_date))
Pandas似乎将
dt.strftime(“%B-%Y”)
作为字符串处理,不允许我使用它进行计算

TypeError:-:“str”和“str”的操作数类型不受支持

也会因相同的错误而失败

如何使用此特定格式进行计算

如何使用此特定格式进行计算

如果需要在python、pandas中使用datetimes,这意味着无法通过
strftime
将输出转换为字符串

因此需要在
write
函数中转换为自定义字符串:

df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.date
#if need datetiems without times
#df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.normalize()

#if need working with years and months only convert datetimes to month periods
#df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.to_period('m')

start_date = df["Datum"].min()
end_date = df["Datum"].max()

start, end = st.sidebar.slider("Label", start_date.strftime('%B-%Y'), end_date.strftime('%B-%Y'), (start_date.strftime('%B-%Y'), end_date.strftime('%B-%Y')))
df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.date
#if need datetiems without times
#df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.normalize()

#if need working with years and months only convert datetimes to month periods
#df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y").dt.to_period('m')

start_date = df["Datum"].min()
end_date = df["Datum"].max()

start, end = st.sidebar.slider("Label", start_date.strftime('%B-%Y'), end_date.strftime('%B-%Y'), (start_date.strftime('%B-%Y'), end_date.strftime('%B-%Y')))