python - 重置 Pandas 时间戳的时间部分

标签 python datetime pandas timestamp

如何重置 pandas 时间戳的时间部分?

我想重置 pandas.Timestamp 值中的时间部分。
我想我可以使用以下过程来完成。

  • 步骤 1) 时间戳到日期时间类型
  • 步骤 2) 日期时间到秒
  • 第 3 步)以秒为单位截断时间部分
  • 第 4 步)将秒数带回时间戳

即使我的猜测是正确的,也需要很长时间才能完成。 有没有一种直接的方法可以实现这个目标?

In [371]: ts = pd.Timestamp('2014/11/12 13:35')

In [372]: ts

Out[372]: Timestamp('2014-11-12 13:35:00')

In [373]: ts.hour = 0 # <-- this is what I am trying to do.

最佳答案

我认为您正在寻找 replace 方法(参见 docs ):

In [18]: ts
Out[18]: Timestamp('2014-11-12 13:35:00')

In [19]: ts.replace(hour=0)
Out[19]: Timestamp('2014-11-12 00:35:00')

这是继承自datetime.datetime的方法

如果你想重置全时部分,你在replace中指定所有部分:

In [20]: ts.replace(hour=0, minute=0, second=0)
Out[20]: Timestamp('2014-11-12 00:00:00')

还有一个 DatetimeIndex.normalize 方法,但这在单个时间戳上不可用(我为此打开了一个问题:https://github.com/pydata/pandas/issues/8794):

In [21]: pd.DatetimeIndex([ts]).normalize()[0]
Out[21]: Timestamp('2014-11-12 00:00:00')

关于python - 重置 Pandas 时间戳的时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882499/

相关文章:

python - 抓取网站时处理 WebForm_DoPostBackWithOptions

mysql - 时间戳数据类型能否插入 UTC 时间而不是本地时间(System_time_Zone)

python 字符串函数不适用于具有数据类型对象的列

python - 在 Pandas 中,如何在 DataFrame 中排在前十组数据?

python - 将组中的所有用户添加为模型字段中的选项

python - 如何将 pandas 的 DataFrame 转换为 Spark 中的 DataFrame 或 LabeledPoint?

Python 不识别目录 os.path.isdir()

sql-server - 在 MS SQL 中创建 "date updated"列?

c# - 为什么我需要创建一个返回 DateTime.Now 而不是直接使用 DateTime.Now 的 DateTime 服务?

python - 如何合并 pandas 列和合并日期时间