如何将python datetime(ISO)截断为小时?

时间:2016-02-26 18:38:00

标签: python pandas

我需要在小时截断以下日期时间戳。我在Pandas的Python中找不到一个好的解决方案。

原始数据如下:

0   2013-01-01 05:39:00
1   2013-01-01 09:04:00
2   2013-01-01 13:16:00
3   2013-01-01 13:14:00
4   2013-01-01 14:51:00
Name: entry_time, dtype: datetime64[ns]

我可能需要它:

0   2013-01-01 05:00:00
1   2013-01-01 09:00:00
2   2013-01-01 13:00:00
3   2013-01-01 13:00:00
4   2013-01-01 14:00:00

2 个答案:

答案 0 :(得分:1)

您可以按values将列转换为numpy.ndarray并将其转换为numpy.ndarray.astype

df['entry_time'] = df['entry_time'].values.astype('<M8[h]')
print df
           entry_time
0 2013-01-01 05:00:00
1 2013-01-01 09:00:00
2 2013-01-01 13:00:00
3 2013-01-01 13:00:00
4 2013-01-01 14:00:00

或者你可以apply replace 分钟0

df['entry_time'] = df['entry_time'].apply(lambda x: x.replace(minute=0, second=0))
print df
           entry_time
0 2013-01-01 05:00:00
1 2013-01-01 09:00:00
2 2013-01-01 13:00:00
3 2013-01-01 13:00:00
4 2013-01-01 14:00:00

答案 1 :(得分:0)

可能的选择是将每个字符串变为datetime object并使用strftime来获得所需的输出

return dt.strftime('%Y-%m-%w %H:00:00')

docs