如何从 pandas.datetime 中提取小时?

Hél*_*gos 2 python pandas

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

\n\n

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

\n\n

先感谢您

\n

小智 9

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

请看这个。

dir(df[index].dt)
Run Code Online (Sandbox Code Playgroud)

这是一个例子。

import pandas as pd
df = pd.DataFrame([["2020-01-01 06:31:00"], ["2020-03-12 10:21:09"]])
print(df)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

现在你的 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
Run Code Online (Sandbox Code Playgroud)