无论我做什么,streamlit都会显示我的pandas日期列,如下所示:
然而,当在我的终端中打印这些列时,它们显示为“2023-05-11”和“11 May 23”。
这是我用来将日期时间列转换为日期列的函数:
def _get_date(self):
self.df["Date"] = (
pd.to_datetime(self.df[self.date], utc=True)
.dt.tz_convert("Europe/London")
.dt.date
)
self.df["Test"] = pd.to_datetime(self.df["Date"], format='%Y-%m-%d').dt.strftime('%d %b %y')
self.df['Test2'] = pd.to_datetime(self.df['Datetime'])
self.df["Test2"] = self.df['Test2'].astype(str)
self.df["Test2"] = [d[0] for d in self.df["Test2"].str.split(" ")]
当在我的控制台中打印dataframe时,这是我看到的:
原始日期时间列的格式为“2023-05- 11 T18:00:00.000+01:00”
更新:
我现在知道是什么导致了这种转变。我一直在使用from streamlit_extras.dataframe_explorer import dataframe_explorer
,它显然会查找所有日期列,并将它们转换回yyyy-mm-dd hh:mm:ss格式。
2条答案
按热度按时间ryhaxcpt1#
您的
_get_date
函数目前正在使“Date”和“Test”列显示相同的内容。如果你希望它们显示不同的值,你可以这样做:在此版本中,“日期”列显示格式
2023-05-11
,“测试”显示11 May 23
。k10s72fa2#
试着测试一个简单的例子:
你必须返回 Dataframe 。修改不到位: