我是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')
答案 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