首页 > 解决方案 > 如何从 pandas.datetime 中提取小时数?

问题描述

我有一个应用了 pandas.to_datetime 的 pandas 数据框。现在我想从每个时间戳中提取小时/分钟/秒。我使用 df.index.day 来获取日期,现在,我想知道我的索引中是否有不同的时间。例如,如果我有两个日期 d1 = 2020-01-01 00:00:00 和 d2 = 2020-01-02 00:00:00 我不能假设我应该按小时应用平滑运算符,因为没有意义.

所以我想知道的是:我怎么知道一天是否有不同的小时/分钟或秒?

先感谢您

标签: pythonpandas

解决方案


我认为您应该使用熊猫提供的 df[index].dt 。您可以使用它提取日、周、小时、分钟、秒。

请看这个。

dir(df[index].dt)

这是一个例子。

import pandas as pd
df = pd.DataFrame([["2020-01-01 06:31:00"], ["2020-03-12 10:21:09"]])
print(df)
df['time'] = pd.to_datetime(df["timestamp"])
df['dates'] = df['time'].dt.date
df['hour'] = df['time'].dt.hour
df['minute'] = df['time'].dt.minute
df['second'] = df['time'].dt.second

现在你的 df 应该是这样的。

                     0                time       dates  hour  minute  second
0  2020-01-01 06:31:00 2020-01-01 06:31:00  2020-01-01     6      31       0
1  2020-03-12 10:21:09 2020-03-12 10:21:09  2020-03-12    10      21       9

推荐阅读