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')))