Python 如何使pd.to_datetime()采用多种日期格式?

Python 如何使pd.to_datetime()采用多种日期格式?,python,pandas,Python,Pandas,我正在努力让pd.to_datetime()接受多种日期格式并解析它们。我以为它是在以不同但相似的格式记录日期,但它似乎没有这样做。以下是两个基本示例: 9/3/2020 9/2/20 这是我的剧本: try: datetime.datetime.strptime(row['assignment_name'][:row['assignment_name'].find(' ')], "%m/%d/%y") due_date = row[

我正在努力让pd.to_datetime()接受多种日期格式并解析它们。我以为它是在以不同但相似的格式记录日期,但它似乎没有这样做。以下是两个基本示例:

9/3/2020
9/2/20
这是我的剧本:

    try:
        datetime.datetime.strptime(row['assignment_name'][:row['assignment_name'].find(' ')], "%m/%d/%y")
        due_date = row['assignment_name'][:row['assignment_name'].find(' ')]
        print(due_date)
        data_normalized.at[index, 'due_date'] = pd.to_datetime(due_date, format='%m/%d%y', errors='ignore')
    except ValueError as err:
        data_normalized.at[index, 'due_date'] = None
        print(err)
        continue
它读取较短的格式并对其进行解析,但在较长的日期格式上抛出此错误:
未转换的数据保留:20


我知道我可以稍微清理一下数据以摆脱全年,但是有没有办法在pandas函数中添加多个格式参数?或者有什么替代方案可以读取多种格式?

熊猫的原生日期解析相当灵活。我曾多次以您提供的格式解析日期,而且效果很好

如果我做一个玩具的例子:

df = pd.DataFrame(['9/3/2020', '9/3/20'], columns=['a'])
pd.to_datetime(df.a)

# Output
0   2020-09-03
1   2020-09-03
Name: a, dtype: datetime64[ns]

很好用。我注意到您有
格式='%m/%d%y'
。这在我看来是错误的(你的意思是
%m/%d/%y
?)。如果您实际上只是同时删除
格式
,pandas会自动将其拾取。

为什么不先尝试转换日期值,然后通过
pd.to_datetime()
运行这些值呢;如果不可能添加多种格式,则必须为一种格式清理数据。因为,如果Datetime支持多种格式,该函数将被混淆以获取正确的格式值。
to_Datetime
函数在您给定的两个日期(1.0)上工作
pd.to_datetime(['9/3/2020','9/2/20',errors='concurve')给出datetime索引(['2020-09-03','2020-09-02',dtype='datetime64[ns]',freq=None)
。也许我错过了一些元素。谢谢,这很有效。我还有一个
,errors='ignore'
参数,它忽略了我试图捕获的所有解析问题,所以删除它会有所帮助。