首页 > 解决方案 > Pandas 将日期时间对象类型转换为日期时间

问题描述

我是 Pandas 和 Python 的新手。我想将日期时间对象转换为日期时间。我有一个名为 requestDate 的列,用于对象类型。以下是一种样本类型

2020 年 2 月 4 日星期二 01:38 PM GMT+2

我正在尝试通过添加以下代码将上述对象转换为 DateTime,但是它显示的错误未转换数据仍然存在。我已删除 GMT+2。请帮助我。

test_df['requestDate'] = test_df['requestDate'].str.rstrip('GMT+2')
test_df['requestDate'] =  pd.to_datetime(test_df['requestDate'], format='%a, %d-%b-%Y %H:%M %p')

标签: pythonpandas

解决方案


数据中的最后一个空格有问题,因此添加Series.str.strip并更改%H%I12 小时格式的比赛时间:

test_df = pd.DataFrame({'requestDate':['Tue, 04-Feb-2020 01:38 PM GMT+2',
                                       'Tue, 04-Feb-2020 01:38 PM GMT+2']})

test_df['requestDate'] = test_df['requestDate'].str.rstrip('GMT+2').str.strip()
test_df['requestDate'] =  pd.to_datetime(test_df['requestDate'], 
                                         format='%a, %d-%b-%Y %I:%M %p')

print (test_df) 
          requestDate
0 2020-02-04 13:38:00
1 2020-02-04 13:38:00

这里添加空间不能使用,因为也M被删除:

test_df['requestDate'] = test_df['requestDate'].str.rstrip(' GMT+2')

print (test_df) 
                requestDate
0  Tue, 04-Feb-2020 01:38 P
1  Tue, 04-Feb-2020 01:38 P

Series.str.replace和 escaped的可能解决方案+,因为特殊的正则表达式字符:

test_df['requestDate'] = test_df['requestDate'].str.replace(' GMT\+2', '')

print (test_df) 
                 requestDate
0  Tue, 04-Feb-2020 01:38 PM
1  Tue, 04-Feb-2020 01:38 PM

推荐阅读