【问题标题】:Pandas convert Date Time object type to Date TimePandas 将日期时间对象类型转换为日期时间
【发布时间】:2020-04-01 08:40:27
【问题描述】:

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

格林威治标准时间+2 2020 年 2 月 4 日星期二下午 1:38

我正在尝试通过添加以下代码将上述对象转换为 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')

【问题讨论】:

    标签: python pandas


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2017-09-29
      • 2023-03-17
      • 1970-01-01
      • 2016-01-27
      • 2018-11-03
      相关资源
      最近更新 更多