为什么DataFrame表spyder和python控制台中的日期时间格式不同

2024-06-23 04:00:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将非datetime类型的列更改为datetime类型和2020-03-31格式。原始格式和类型是31-Mar-20和object。我试图在将类型格式化为2020-03-31后将其更改为datetime,但不知何故,如果我将其更改为datetype类型,在我的dataframe中,它总是包含hh:mm:ss,但当我在控制台中检查它时,它已经是datetype,并且没有{}。为什么会这样

当我检查它时,这是Spyder中变量资源管理器选项卡中的DataFrame

my dataframe

这是我在控制台中检查它的时候

covid.date
Out[156]: 
0    2020-03-02
1    2020-03-03
2    2020-03-04
3    2020-03-05
4    2020-03-06
5    2020-03-07

Tags: 类型dataframedatetimeobject格式hhssmar
1条回答
网友
1楼 · 发布于 2024-06-23 04:00:37

您可以通过以下方式提取日期部分,将这些datetimes显式转换为dates

covid['date'] = covid['date'].dt.date

然后他们应该失去time部分,变成datetime.date而不是datetime

现在,您将注意到该列实际上是object类型(例如,当使用covid.info())时)pandas实际上,没有datetime.date作为标准数据类型。因此它将整个列视为存储object

但是如果您访问单个元素,您会注意到它是一个datetime.date。例如,你可以做如下事情:

covid['date'].iloc[0].year
# Out: 2020

并得到有意义的结果,而不是试图在字符串上这样做

例如,如果您想获取该列中每个元素的year,您必须求助于apply(因为您不能再调用.dt),类似于:

covid['year'] = covid['date'].apply(lambda x: x.year)

相关问题 更多 >

    热门问题