如何用Serie的时间戳索引值填充时间Serie数据帧的“日期和时间”列

时间:2018-11-23 03:11:34

标签: python datetime timestamp

我有以下数据帧,其中索引是时间戳:

                           Date Time  
2018-11-21 09:50:00-08:00  NaN  NaN    
2018-11-21 08:28:00-08:00  NaN  NaN    
2018-11-21 06:34:00-08:00  NaN  NaN    
2018-11-21 04:44:00-08:00  NaN  NaN     
2018-11-21 04:37:00-08:00  NaN  NaN

如何用时间戳记提供的值填充日期和时间列?所以我可以得到这个:

                           Date        Time  
2018-11-21 09:50:00-08:00  2018-11-21  09:50 AM    
2018-11-21 08:28:00-08:00  2018-11-21  08:28 AM    
2018-11-21 06:34:00-08:00  2018-11-21  06:34 AM    
2018-11-21 04:44:00-08:00  2018-11-21  04:44 AM     
2018-11-21 04:37:00-08:00  2018-11-21  04:37 AM

在此先感谢您的帮助或建议。...乔斯

1 个答案:

答案 0 :(得分:1)

您可以从开始到第一次提取日期字符串,将其转换为日期时间,并使用datetime访问器,以及正确的格式化程序:

x = pd.to_datetime(df.index.str.extract('(.*\d{2}:\d{2}:\d{2})'))

df['Date'] = x.date

df['Time'] = x.strftime('%I:%M %p')

>>> df
                                 Date      Time
2018-11-21 09:50:00-08:00  2018-11-21  09:50 AM
2018-11-21 08:28:00-08:00  2018-11-21  08:28 AM
2018-11-21 06:34:00-08:00  2018-11-21  06:34 AM
2018-11-21 04:44:00-08:00  2018-11-21  04:44 AM
2018-11-21 04:37:00-08:00  2018-11-21  04:37 AM