强制秒为z

2024-04-25 15:23:24 发布

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

在数据帧df中有以下datetime64格式date

2018-12-11 15:26:07

在Python中,如何将秒舍入到最接近的一分钟,使其成为这样?你知道吗

2018-12-11 15:26:00

谢谢


Tags: 数据dfdate格式datetime64
3条回答

您可以使用^{}和分钟频率:

df = pd.DataFrame({'a': ['2018-12-11 15:26:07',
                         '2018-12-11 15:26:31']})
df['a'] = pd.to_datetime(df['a'])
df['a'] = df['a'].dt.round('min')
print(df)

#                     a
# 0 2018-12-11 15:26:00
# 1 2018-12-11 15:27:00

创建df(数据帧):

1-通过运行以下命令导入控制台中的pandas库(在我的例子中是Jupyter)。你知道吗

import pandas as pd

2-现在运行以下命令来创建df(dataframe)。你知道吗

df = pd.DataFrame({'a': ['2018-12-11 15:26:07',
                         '2018-12-11 15:26:31']})

现在,OP要求获取秒字段00

df['a']=df['a'].str.replace(':[0-9]+$', ':00')
df

现在打印df时,输出如下。你知道吗

     a
0   2018-12-11 15:26:00
1   2018-12-11 15:26:00

最快最简单的方法是重新定义时间单位或更改格式,从:

df['IDENTIFY_DATE'] = df.IDENTIFY_DATE.astype(
    'datetime64[ns]'

收件人:

df['IDENTIFY_DATE'] = df.IDENTIFY_DATE.astype(
    'datetime64[s]'

unit:string,默认“ns”:arg的单位(D,s,ms,us,ns)表示单位,是整数或浮点数。这将基于原点。例如,使用unit='ms'和origin='unix'(默认值),这将计算unix epoch开始的毫秒数。你知道吗

或者改变格式

df['IDENTIFY_DATE'] = df.IDENTIFY_DATE.astype(
    format=“%d/%m/%Y %H:%M”, note that “%f” will parse all the way up to nanoseconds.'

格式:字符串,默认无 strftime解析时间,例如“%d/%m/%Y”,请注意“%f”将解析到纳秒。你知道吗

通过: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html

同样有用:http://strftime.org/

相关问题 更多 >