将 Pandas 时间对象转换为字符串
Posted
技术标签:
【中文标题】将 Pandas 时间对象转换为字符串【英文标题】:Convert Pandas time object to string 【发布时间】:2020-08-27 22:53:49 【问题描述】:我有一个列表列表 dates
包含 DateTimeIndex。
[DatetimeIndex(['2016-01-16 22:00:00', '2016-01-16 22:15:00',
'2016-01-16 22:30:00', '2016-01-16 22:45:00',
'2016-01-16 23:00:00', '2016-01-16 23:15:00',
'2016-01-16 23:30:00', '2016-01-16 23:45:00',
'2016-01-17 00:00:00'],
dtype='datetime64[ns]', freq=None)
...
DatetimeIndex(['2016-01-23 21:30:00', '2016-01-23 21:45:00',
'2016-01-23 22:00:00', '2016-01-23 22:15:00',
'2016-01-23 22:30:00', '2016-01-23 22:45:00',
'2016-01-23 23:00:00', '2016-01-23 23:15:00',
'2016-01-23 23:30:00'],
我想将此列表转换为如下所示:
[DatetimeIndex(['Saturday 22:00:00', 'Saturday 22:15:00',
'Saturday 22:30:00', 'Saturday 22:45:00',
'Saturday 23:00:00', 'Saturday 23:15:00',
等等。格式必须是字符串,我喜欢保留列表。 我尝试了以下方法,但没有返回我想要的内容
[list(zip(i.day_name(), i.time)) for i in dates]
[[('Saturday', datetime.time(22, 0)),
('Saturday', datetime.time(22, 15)),
('Saturday', datetime.time(22, 30)),
('Saturday', datetime.time(22, 45)),
('Saturday', datetime.time(23, 0)),
('Saturday', datetime.time(23, 15)),
('Saturday', datetime.time(23, 30)),
('Saturday', datetime.time(23, 45)),
('Sunday', datetime.time(0, 0))],
但是,当我尝试将 i.time
转换为字符串时,会出现以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'apply'
有没有人可以帮助我?将不胜感激,谢谢!
【问题讨论】:
【参考方案1】:将DatetimeIndex.strftime
与%A
一起用于带有HH:MM:SS
次的日期名称:
dates = pd.DatetimeIndex(['2016-01-16 22:00:00', '2016-01-16 22:15:00',
'2016-01-16 22:30:00', '2016-01-16 22:45:00',
'2016-01-16 23:00:00', '2016-01-16 23:15:00',
'2016-01-16 23:30:00', '2016-01-16 23:45:00',
'2016-01-17 00:00:00'])
out = [i.strftime('%A %H:%M:%S') for i in dates]
print (out)
['Saturday 22:00:00', 'Saturday 22:15:00', 'Saturday 22:30:00',
'Saturday 22:45:00', 'Saturday 23:00:00', 'Saturday 23:15:00',
'Saturday 23:30:00', 'Saturday 23:45:00', 'Sunday 00:00:00']
【讨论】:
以上是关于将 Pandas 时间对象转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
将 Pandas DataFrame 中的日期对象列转换为字符串
Pandas:如何将数据框列中的“时间戳”值从对象/字符串转换为时间戳?
Pandas 数据框无法将列数据类型从对象转换为字符串以进行进一步操作
如何将“字节”对象转换为 Pandas Dataframe、Python3.x 中的文字字符串?
Pandas `read_json` 函数将字符串转换为 DateTime 对象,即使指定了 `convert_dates=False` 属性