熊猫将日期时间对象类型转换为日期时间

时间:2020-04-01 08:40:27

标签: python pandas

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

2020年2月4日,星期二,格林尼治标准时间+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')

1 个答案:

答案 0 :(得分:1)

数据的最后空间有问题,因此添加了Series.str.strip,然后将%H更改为%I,以12小时格式表示比赛时间:

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并转义了+,因为特殊的正则表达式字符:

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