查找包含Pandas中日期的列

Jam*_*ull 4 python pandas

我正在尝试识别包含日期为字符串的列,以便将它们转换为更好的类型(DateTime或类似UTC的数字).使用的日期格式是27/11/2012 09:17我可以使用正则表达式搜索的\d{2}/\d{2}/\d{4} \d{2}:\d{2}.

我目前的代码是:

date_cols = []
df = cleaned_data
date_pattern = re.compile('\d{2}/\d{2}/\d{4} \d{2}:\d{2}')
for column in df:
    if date_pattern.search(str(item)):
        date_cols += [column]
return date_cols
Run Code Online (Sandbox Code Playgroud)

我确信这不利用它的功能pandas.有没有更好的方法,既可以识别列,也可以直接将它们转换为DateTime或UTC时间戳?

And*_*den 5

如果您要转换整列,可以使用convert_objects:

df.convert_objects(convert_dates=True)
Run Code Online (Sandbox Code Playgroud)

要提取列/系列中包含的日期,您可以使用findall:

In [11]: s = pd.Series(['1', '10/11/2011 11:11'])

In [12]: s.str.findall('\d{2}/\d{2}/\d{4} \d{2}:\d{2}')
Out[12]:
0                    []
1    [10/11/2011 11:11]
dtype: object

In [13]: s.str.findall('\d{2}/\d{2}/\d{4} \d{2}:\d{2}').apply(pd.Series)
Out[13]:
                  0
0               NaN
1  10/11/2011 11:11
Run Code Online (Sandbox Code Playgroud)

*然后使用convert_objects转换为时间戳...*