熊猫日期列的格式不同-列与行的数据类型

时间:2018-12-07 14:40:09

标签: python regex pandas date types

我有一个pd DataFrame列,其日期值采用不同的格式。例如“ YYYY-MM-DD hh:mm:ss”和“ DD.MM.YYYY”,甚至是“ DD.MM”。我想将它们全部转换为一种格式(例如'YYYY-MM-DD'),并尝试了(其中包括)

df[~df.date.str.contains('(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})')] 

查找日期未写为“ YYYY-MM-DD hh:mm:ss”的行。但是,这不起作用。

因此,我检查了列的类型

df['date'].dtype   #prints dtype('O')

然后我检查了

for index, row in df.iterrows():
    print(type(row['date']))

并收到混合打印,例如'datetime.datetime'类和'str'类

我很困惑。当列是“对象”数据类型时,为什么不能总是得到“ str”?有人偶然知道如何使正则表达式起作用吗?

1 个答案:

答案 0 :(得分:1)

def findIndex(x):
    try:
        pd.to_datetime(x).strftime('%m/%d/%Y')
        return
    except:
        return True


df.date.apply(lambda x: findIndex(x))

现在,您可以使用 weird 格式获取所有索引。希望这会有所帮助。