微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从时间戳列表中获取小时和分钟

如何解决从时间戳列表中获取小时和分钟

我有以下列表:

Index([2020-11-14 07:00:00,2020-11-14 07:03:00,2020-11-14 07:06:00,2020-11-14 07:09:00,2020-11-14 07:12:00,2020-11-14 07:15:00,2020-11-14 07:18:00,2020-11-14 07:21:00,2020-11-14 07:24:00,2020-11-14 07:27:00,...
       2020-11-14 16:33:00,2020-11-14 16:36:00,2020-11-14 16:39:00,2020-11-14 16:42:00,2020-11-14 16:45:00,2020-11-14 16:48:00,2020-11-14 16:51:00,2020-11-14 16:54:00,2020-11-14 16:57:00,2020-11-14 17:00:00],dtype='object',length=201)

列表中的项目类型:

type(time_lst[0])
>>>pandas._libs.tslibs.timestamps.Timestamp

我想遍历我的 lsit 中的项目并仅提取小时和分钟,以获得如下内容

[07:00,07:03,07:06,07:09....]

直到现在我发现只有关于如何单独获得小时或分钟的帖子。我设法只提取了小时,但我不资助如何设置小时和分钟。

#here I get all the timestamp items inside my lsit from pandas dataframe
time_lst=tmp.columns

#get the hour
for i in time_lst:
    x=i.hour
    print(x)

我曾尝试做这样的事情:

time_lst=tmp.columns
for i in time_lst:
    h=i.hour
    m=i.min
    item=str(h)+':'+str(m)
    
    print(item)

但是这个打印出奇怪的值 (7:1677-09-21 00:12:43.145225),我相信有更有效和更智能的方法提取小时和分钟,然后将其转换为字符串。

我的最终目标是从我的时间戳列表中创建一个只有小时和分钟的新列表

解决方法

如果需要处理 DatetimeIndex 使用 DatetimeIndex.strftime

L = df.index.strftime('%H:%M').tolist()

如果需要处理列表或 DatetimeIndex 使用带有 Timestamp.strftime 的列表理解:

L = [x.strftime('%H:%M') for x in time_lst]
,

您可以使用strftime

pd.to_datetime(pd.Series("your list")).dt.strftime("%H:%M")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。