gpt4 book ai didi

python - 将日期时间 ns 转换为每日格式

转载 作者:行者123 更新时间:2023-12-01 07:37:06 24 4
gpt4 key购买 nike

我的数据框中有一列采用以下格式:

2013-01-25 00:00:00+00:00

非空 datetime64[ns,UTC]

我想将其转换为每日格式,如下所示:

2013-01-25

我尝试了这种方法,但收到错误:

df['date_column'].date()

属性错误:“系列”对象没有属性“日期”

错误消息对我来说不太清楚,因为根据 df.info(),该对象应该是日期时间对象

任何人都可以建议一种如何做到这一点的方法吗?

最佳答案

简而言之:不建议转换为date对象,因为这样你会失去很多检查date的功能。最好只是 dt.floor(..) [pandas-doc] ,或dt.normalize(..) [pandas-doc] .

您可以使用 pd.to_datetime(..) [pandas-doc] 转换一系列字符串,例如:

>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00']))
0 2013-01-25
dtype: datetime64[ns]

稍后我们可以使用 .dt.date [pandas-doc] 将其转换为 date 对象。 :

>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00'])).dt.date
0 2013-01-25
dtype: object

请注意,date 不是原生 Numpy 类型,因此它将使用 Python date(..) 对象。这样做的缺点是您无法再处理类似日期时间的对象。因此系列或多或少失去了很多功能。

最好只是 dt.floor(..) [pandas-doc]到当天,从而将其保留为 datetime64[ns] 对象:

>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00'])).dt.floor(freq='d')
0 2013-01-25
dtype: datetime64[ns]

我们可以使用dt.normalize(..) [pandas-doc]以及。这只是将时间部分设置为 0:00:00,并且时区不受影响:

>>> pd.to_datetime(pd.Series(['2013-01-25 00:00:00+00:00'])).dt.normalize()
0 2013-01-25
dtype: datetime64[ns]

关于python - 将日期时间 ns 转换为每日格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56941668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com