问题描述
我有以下列表:
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")