python pd.to_datetime()无法处理具有不同日期格式的列

o7jaxewo  于 2023-01-08  发布在  Python
关注(0)|答案(1)|浏览(192)

我写了一个程序,在这个程序中遍历一个 Dataframe &当遇到任何一个名为'Date'的列时,该列下的所有行都应该被转换成一个'datetime'对象,使用'pd.to_datetime',格式如上所述。
我的数据集中的"日期"列由各种格式的日期组成,并使用不同的分隔符。示例:26/04/2007,01 - 15 - 1998,2020 - 12 - 2.当我进行调试时,我得到了那些不是指定格式的日期的错误消息。
使用该方法的全部意义不就是将任何格式的日期转换为指定格式的datetime对象&吗?
我的代码:

from dateutil.parser import parse
import re
from datetime import datetime
import calendar

import pandas as pd

def date_fun(filepath):
     
   date_list=['Date', 'date', 'Dates', 'dates']
   
   for i in filepath.columns:
 
      for j in date_list:     
          if i==j:
            filepath[i]=pd.to_datetime(filepath[i], format='%d-%m-%Y')
           
                                                                         

main_path = pd.read_csv('C:/Data_Cleansing/lockdown_us.csv')
fpath=main_path.copy()

date_fun(fpath)
    • 错误**:时间数据"26 - 2016 - 09"与格式" % d- % m- %Y"不匹配(匹配)

我的代码哪里出错了?

yi0zb3m4

yi0zb3m41#

因为您正在使用pd.to_datetime,同时您的date不一致。

...
if i==j:
    filepath[i] = filepath[i].apply(lambda x: parse(x).strftime("%d-%m-%Y"))
...

相关问题